问题描述
我目前正在编写有关中值过滤器的内容,并想使用一些 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 (将#修改为@)