python - 如何在模糊图像时使用不同的内核形状?

标签 python image-processing blur gaussianblur

我想使用像cv2.GaussianBlur()这样的快速模糊函数,但它只允许矩形内核形状。有没有办法使用椭圆核形状?如果还有其他模糊功能允许的话,您能建议一下该功能吗?

最佳答案

不要依赖内置内核或 opencv 的内置函数,而是使用 cv2.filter2D() 函数来应用您选择的自定义内核以及您选择的值!有了这个,您不仅可以应用您提到的“椭圆”内核,还可以应用您想要的任何内核。

用法如下:

import cv2
import numpy as np

img = cv2.imread('image.png')

kernel = np.ones((5,5),np.float32)/25
dst = cv2.filter2D(img,-1,kernel)

因此,在上面的代码中,内核如下所示:

enter image description here

已使用。

现在,如果您想要一个“椭圆”内核,您可以手动构建一个 np 数组(即内核),并在每一行和每一列中使用自定义值,或者您可以使用 cv2 的 cv2.getStructuringElement 函数为您构建椭圆内核然后你可以在filter2D()函数中使用这个内核。

cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))

上面的函数将打印:

[[0, 0, 1, 0, 0],
 [1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1],
 [0, 0, 1, 0, 0]]

这是你的椭圆内核!

关于python - 如何在模糊图像时使用不同的内核形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58844989/

相关文章:

python - 分水岭分割后的细胞计数——openCV/Python

python - 如何在 Python 中捕获的视频上插入图像

python - 模块对象不可调用

python - 获取列表中出现频率最高的单词

java - OpenCV Mat 处理时间

android - 开启硬件加速时的模糊效果

css - 文本模糊的最佳解决方案 + 所有浏览器支持 - 后备想法?

wpf - 创建半透明模糊背景 WPF

Python 模数给出字符串格式错误

python - 极其简单的python十进制