在理解scipy或opencv中值滤波函数时遇到问题

0s0u357o  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(209)

我目前正在写一些关于中值滤波器的东西,并希望使用一些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,0,0,0,0,0,0,0,158,255],因此中位数应该是0。结果如何?许多其他值也存在类似的混淆。我从李哲·塔(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)

因为我想写我自己的过滤函数,所以我必须准确地理解这一切是如何工作的!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题