python+opencv计算机视觉去噪处理的均值滤波,高斯滤波,中值滤波,双边滤波简答精华总结

自己总结(本人辣鸡请不喜勿喷,不一定对)
(1)方框滤波、
方框滤波是所有滤波器中最简单的,是通过滤波器核K内每个像素值的平均值得到的

(2)均值滤波
均值滤波跟方框滤波的唯一区别是:
均值滤波的是normalize=true,

(3)高斯滤波
高斯滤波就是每个像素点本身和邻域内的其他的像素值加权平均
随着距离中心距离的增大,权重将迅速减小,从而确保中心的像素点看起来更像是接近与它更近的像素点
python+opencv计算机视觉去噪处理的均值滤波,高斯滤波,中值滤波,双边滤波简答精华总结_第1张图片
缺点:高斯滤波没有考虑图像的边缘,会将边缘模糊掉。因为高斯核只考虑了空间分布,没有考虑到像素值的差异。图像的边缘往往是图像灰度剧烈变化的地方

(4) 中值滤波
选择一个模板,该模板为其邻近的若干个像素组成,对模板的像素由小到大进行排序,再用模板的中值来替代原像素的值的方法

5)双边滤波
其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘,优化后的权系数再与图像信息作卷积运算,这样就能在滤波的同时考虑到图像信息中的图像边缘信息
有效的改变高斯滤波对边缘处理不好的缺点,双边滤波对边缘信息得以保持清晰,并且图像边缘更加平滑

借鉴大佬的
rocling
https://blog.csdn.net/weixin_41424481/article/details/96738308?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-9
(这个博主写的真的简洁明了)
想要详细了解的参考
https://blog.csdn.net/a1111111111ss/article/details/106312435

(这个图是真的太棒了)
python+opencv计算机视觉去噪处理的均值滤波,高斯滤波,中值滤波,双边滤波简答精华总结_第2张图片
结果
python+opencv计算机视觉去噪处理的均值滤波,高斯滤波,中值滤波,双边滤波简答精华总结_第3张图片


import numpy as np
import cv2
import matplotlib.pyplot as plt
########     四个不同的滤波器    #########
img = cv2.imread('cat.jpg')
 
# 均值滤波
img_mean = cv2.blur(img, (5,5))
 
# 高斯滤波
img_Guassian = cv2.GaussianBlur(img,(5,5),0)
 
# 中值滤波
img_median = cv2.medianBlur(img, 5)
 
# 双边滤波
img_bilater = cv2.bilateralFilter(img,9,75,75)
 
# 展示不同的图片
titles = ['srcImg','mean', 'Gaussian', 'median', 'bilateral']
imgs = [img, img_mean, img_Guassian, img_median, img_bilater]
 
for i in range(5):
    plt.subplot(2,3,i+1)#注意,这和matlab中类似,没有0,数组下标从1开始
    plt.imshow(imgs[i])
    plt.title(titles[i])
plt.show()

你可能感兴趣的:(计算机视觉)