我想使用像这样的快速模糊功能,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)
因此,在上面的代码中,一个内核如下所示:
用来。
现在,如果您需要“椭圆形”内核,则可以手动在每行和每一列中构建具有自定义值的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]]
这是你的椭圆核!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句