用邻域内所有像素值的中间值来替代当前像素点的像素值。
2. 函数语法
在 OpenCV 中,实现中值滤波的函数是 cv2.medianBlur()
,其语法格式如下:
dst = cv2.medianBlur( src, ksize)
式中:
- dst 是返回值,表示进行中值滤波后得到的处理结果。
- src 是需要处理的图像,即源图像。它能够有任意数量的通道,并能对各个通道独立处理。图像深度应该是 CV_8U、CV_16U、CV_16S、CV_32F 或者 CV_64F 中的一种。
- ksize 是滤波核的大小。滤波核大小是指在滤波处理过程中其邻域图像的高度和宽度。需要注意,核大小必须是比 1 大的奇数,比如 3、5、7 等。
【例 7.7】针对噪声图像,对其进行中值滤波,显示滤波的结果。
import cv2
img = cv2.imread("/Users/zhaofeier/Desktop/源代码及图像/chapter7/image/lenaNoise.png")
r = cv2.medianBlur(img,3)
cv2.imshow("original",img)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()