【图像处理】对灰度图进行中值滤波

2025-10-20 03:02:20

1、把图片读为灰度图:

img=cv2.imread('0.jpg',0)

cv2.imwrite('00.png',img)

【图像处理】对灰度图进行中值滤波

2、给img加边框,上下左右各增加10个像素。

pic=np.zeros((u+20,v+20))

pic[10:u+10,10:v+10]=img

【图像处理】对灰度图进行中值滤波

3、给出pic一个21*21的窗口:

pic[10:31,10:31]

【图像处理】对灰度图进行中值滤波

4、pic[10:31,10:31]里面有21*21个像素。这也是一个21*21的矩阵,我们可以把它展开称为一个向量,并且把元素从小到大排边塑压列起来:

window=pic[10:31,10:31]

vector=np.reshape(window,(1,-1))[0]

pailie=sorted(vector)

【图像处理】对灰度图进行中值滤波

5、用中间的数值,来代块欧替相应像素的值:

for i in range(u):

    for j in range(v):

        window=pic[i:i+21,j:j+21]

        vector=np.reshape(window,(1,-1))[0]

        pailie=sorted(vector)

        img[i,j]=pailie[220]

这就是中值滤波,时间可能比较长。

【图像处理】对灰度图进行中值滤波

6、最后,得到如下图片。

【图像处理】对灰度图进行中值滤波

7、包装函数zzlb,并测试3*3大小的窗口的中值滤波汽缝效果。

【图像处理】对灰度图进行中值滤波

【图像处理】对灰度图进行中值滤波

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢