当前位置: 首页 > 知识库问答 >
问题:

python中的环形中值滤波器

孟鸿德
2023-03-14

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

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内核中的圆)。有没有“响铃”功能我可以用OTS什么的?

为什么要这么做-试着使用本文的一部分http://pages.swcp.com/~spsvs/resume/PODS_DSS2009_2009-01-15.pdf环形中值滤波器,从原始图像中减去后,留下的对象的比例大小小于半径。

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

共有1个答案

毕嘉
2023-03-14

对圆 https://www.daniweb.com/programming/software-development/threads/321181/python-bresenham-circle-arc-algorithm 使用 Bresenham 算法

Scipy通用过滤器和这个环中值内核在实践中相当慢,至少在python中是这样

 类似资料:
  • 本文向大家介绍opencv+python实现均值滤波,包括了opencv+python实现均值滤波的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下 原理 均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是3×3 3\times 33×3时,则取其自身和周围8个像素

  • 我想使用中值滤波器来平滑图像。我找到了位于此处的库:http://librow.com/articles/article-1我的问题依赖于算法是否期望一维或二维数组(从我所了解的中值滤波器读取当前算法中3x3的“窗口”中的值,然后选择它们的中值并用它替换窗口中的所有像素)。

  • 本文向大家介绍python Gabor滤波器讲解,包括了python Gabor滤波器讲解的使用技巧和注意事项,需要的朋友参考一下 解读Gabor滤波器 Fourier 变换是一种信号处理的有力工具,可以将图像从空域转换到频域,并提取到空域上不易提取到的特征。但是Fourier变换缺乏时间和位置的局部信息。 Gabor 变换是一种短时加窗Fourier变换(简单理解起来就是在特定时间窗内做Four

  • 我在keras建立了一个ConvNet,这是其中的两层 第一层大小的输出,我完全理解,因为有8个大小为3x3的过滤器,每个过滤器都被应用于生成单独的特征图,因此 第二层的输出大小为24x24x16,我不理解。由于第二层的每个过滤器将作用于第一层输出的每个特征映射,因此输出的大小不应该是24x24x128吗? 基本上,我不明白一层的输出是如何馈送到另一层的输入的

  • 我正在构建API。我在弹性搜索中有身份证,名字,价格。客户机为我提供输入json和要应用的过滤器。 输入1:下面用户正在筛选ID=1(整数)的记录 输入2:用户正在查询带有city=tokyo的记录 用于处理输入和查询到弹性搜索的Java代码 对于过滤器中接收的每个键,我都在检查输入值的数据类型。 我想支持所有的专栏。我想要一个通用的解决方案,而不检查输入数据类型。 输入3: 在不对每个字段及其数

  • 我有一个由col1和col2列聚合的源数据集。Col2值通过按位或运算进行聚合。我需要对Col2值应用过滤器,以选择位为8,4,2的记录 初始源原始数据 将Col1值折叠为每Col1值一行后,基于“上面的SourceRawData”聚合源数据,这是其他团队和Col2值通过按位或运算聚合的结果。注意我这里提供的是输出,而不是实际的聚合逻辑 现在,我需要对上面的聚合数据集应用过滤器,以根据原始源原始数