Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的环形中值滤波器_Python_Opencv_Image Processing_Median_Background Subtraction - Fatal编程技术网

python中的环形中值滤波器

python中的环形中值滤波器,python,opencv,image-processing,median,background-subtraction,Python,Opencv,Image Processing,Median,Background Subtraction,我想实现一个环形中值滤波器——它所做的基本上是用一个圆环中像素的中值替换中心像素。 我可以做一个半径像这样的圆形面具 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 上面的遮罩包括圆内的像素。圆周上应该有什么像素对我来说似乎有点模棱两可(想想3*3、5

我想实现一个环形中值滤波器——它所做的基本上是用一个圆环中像素的中值替换中心像素。 我可以做一个半径像这样的圆形面具

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
上面的遮罩包括圆内的像素。圆周上应该有什么像素对我来说似乎有点模棱两可(想想3*3、5*5、7*7内核内接的圆)。是否有一个“环”功能,我可以使用OTS或什么

为什么会这样-尝试使用本文中的一部分环形中值滤波器,从原始图像中减去后,留下的对象的比例大小小于半径


另外,不确定我是否应该在RGB中执行此操作。我只见过灰度图像上的中值滤波器

对圆使用Bresenham算法


Scipy generic filter和这个环形中位数内核在实践中相当慢,至少在python中是这样的

钢丝形状是一条链,而不是省略号的一部分。嗯,你指的是悬链线曲线吗?减去环形中值滤波器的想法是保持元素小于半径的比例(根据链接的文章)。或者你的意思是,在内核中,环的形状不正确,环的形状与悬链线曲线不匹配,因此检测将很差。泰雷兹直升机公司(前欧洲直升机公司)有一项专利,专门使用链条形状来匹配悬链线曲线。(附言:我不是那个投反对票的人…)这很有趣。你能把专利链接起来吗?找不到它。旁白:不用担心:),让他们憎恨,呵呵。来自“弗朗索瓦·泽维尔·菲利亚斯和让·塞奎拉”的专利,但我不知道数字。你可以简单地计算出戒指的相对坐标,然后应用到你的图像上。这与在数学形态学中应用自定义结构元素类似。是的,这正是我的问题-确切的相对坐标是什么。假设0,0是11*11内核的中心,那么圆的坐标是多少。它有点模棱两可,因此Bresenham算法(见下面我的答案)看起来不错。这里有一个老问题,它使用高斯2D,但是对于这个条件,
ring=ring>eps&ring最简单的方法是在应用中值滤波器之前,计算环坐标。在您的情况下,您可以从点(0,5)开始,然后用一小步跟踪圆/环形状(比如一次跟踪一个度),但您必须检查新点是否尚未进入列表。
import scipy.ndimage.filters as scp_filt
circular_median = scp_filt.generic_filter(my_image, np.median, footprint=kernel)