cms免费建站系统,网页搜索公众号文章,商务网站建设实训结论,塑胶托盘东莞网站建设中值滤波是一种常见的图像处理滤波技术#xff0c;用于去除图像中的噪声。它的原理是用一个滑动窗口#xff08;也称为卷积核#xff09;在图像上移动#xff0c;对窗口中的像素值进行排序#xff0c;然后用窗口中像素值的中值来替换中心像素的值。这样#xff0c;中值滤… 中值滤波是一种常见的图像处理滤波技术用于去除图像中的噪声。它的原理是用一个滑动窗口也称为卷积核在图像上移动对窗口中的像素值进行排序然后用窗口中像素值的中值来替换中心像素的值。这样中值滤波可以有效地消除图像中的椒盐噪声、激光斑点等离群值。 中值滤波与前面介绍的滤波方式不同不再采用加权求均值的方式计算滤波结果。它用邻域内所有像素值的中间值来替代当前像素点的像素值。
基本原理
中值滤波会取当前像素点及其周围临近像素点一共有奇数个像素点的像素值将这些像素值排序然后将位于中间位置的像素值作为当前像素点的像素值。
例如针对图 7-27 中第 4 行第 4 列的像素点计算它的中值滤波值。 将其邻域设置为 3×3 大小对其 3×3 邻域内像素点的像素值进行排序升序降序均可 按升序排序后得到序列值为[66,78,90,91,93,94,95,97,101]。在该序列中处于中心位置也叫中心点或中值点的值是“93”因此用该值替换原来的像素值 78作为当前点的新像素值 处理结果如图 7-28 所示。 函数语法
在 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 等。
实验:针对噪声图像对其进行中值滤波显示滤波的结果
代码如下:
import cv2
ocv2.imread(lenaNoise.png)
rcv2.medianBlur(o,3)
cv2.imshow(original,o)
cv2.imshow(result,r)
cv2.waitKey()
cv2.destroyAllWindows()运行结果: 其中左图是原始图像右图是中值滤波后的处理结果图像。 从图中可以看到由于没有进行均值处理中值滤波不存在均值滤波等滤波方式带来的细节模糊问题。
在中值滤波处理中噪声成分很难被选上所以可以在几乎不影响原有图像的情况下去除全部噪声。但是由于需要进行排序等操作中值滤波需要的运算量较大。