我想实现一个环中值滤波器 - 它的作用基本上是用它周围的圆环中像素的中值替换中心像素。 我可以制作像这样的半径的圆形面具
kernel = np.zeros((2*radius+1, 2*radius+1))
y,x = np.ogrid[-radius:radius+1, -radius:radius+1]
mask = x**2 + y**2 <= radius**2
kernel[mask] = 1
然后我可以使用scipy的通用过滤器来获取值的中值
import scipy.ndimage.filters as scp_filt
circular_median = scp_filt.generic_filter(my_image, np.median, footprint=kernel)
上面的遮罩包含圆圈内的像素。圆周上的像素应该对我来说有点模棱两可(想想3 * 3,5 * 5,7 * 7内核中的圆圈)。有没有&#34;戒指&#34;功能我可以使用OTS或其他什么?
为什么这一切 - 尝试使用本文的一部分http://pages.swcp.com/~spsvs/resume/PODS_DSS2009_2009-01-15.pdf环中值滤波器,在从原始图像中减去后,会留下比例尺小于半径的物体。
另外,不确定我是否应该在RGB中执行此操作。我只看过灰度图像上的中值滤镜
答案 0 :(得分:-1)
Scipy泛型过滤器以及此环中值内核在实践中非常慢,至少在python
中