微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在理解 Scipy 或 OpenCV 中值滤波器函数时遇到问题

如何解决在理解 Scipy 或 OpenCV 中值滤波器函数时遇到问题

我目前正在编写有关中值过滤器的内容,并想使用一些 Python 函数来创建示例。我有一个具有以下像素的示例图像:

[[255   0   0   0 158]  
 [  0 158 158 158 158]  
 [  0   0 255   0   0]  
 [  0   0   0   0 158]  
 [  0 255   0   0 158]]  

Python 结果如下所示:

[[158   0   0 158 158]
 [  0   0   0 158 158]
 [  0   0   0 158 158]
 [  0   0   0   0   0]
 [  0   0   0   0 158]]

我现在的问题是理解这个结果是如何创建的(我正在检查 3x3 半径),因为根据我的理解,第一个像素(位置 0,0 处的 255)应该有结果 0,因为周围缺少像素它用 0 填充。如果我手动检查它,我会考虑我们正在查看的填充:

0   0   0
0 255   0
0   0 158

所以有序数据将是 [0,158,255] 因此中位数应该是 0。结果 158 怎么样?许多其他值也存在类似的混淆。我在 Lizhe Ta 和 Jean Jiang 的“数字信号处理”中阅读了中值的工作原理。可以在此处找到章节(“13.4.2 中值过滤”和“示例 13.8”)https://www.sciencedirect.com/topics/computer-science/median-filter

我这样调用过滤器函数: 进口:

import cv2
from scipy import ndimage

代码片段:

median = cv2.medianBlur(gray,3)
print(median)
im_med = ndimage.median_filter(gray,3)
print(im_med)

因为我想编写自己的过滤器函数,所以我必须准确了解所有这些是如何工作的!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。