Opencv之图像降噪(平滑)

拜拜、爱过 提交于 2020-01-18 13:57:37

图像降噪(平滑)

介绍

图像降噪的英文名称是Image Denoising, 是图像处理中的专业术语。现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。减少数字图像中噪声的过程称为图像降噪,有时候又称为图像去噪。

代码实现

首先,导入带噪音的图片。

img = cv2.imread('lenaNoise.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

在这里插入图片描述

# 均值滤波
# 用3*3的核对图片进行卷积操作,核上的参数都是1/9,达到均值的效果
blur = cv2.blur(img, (3, 3))
# 方框滤波(归一化)=均值滤波
box1 = cv2.boxFilter(img, -1, (3, 3), normalize=True)
# 方框滤波(不归一化)
box2 = cv2.boxFilter(img, -1, (3, 3), normalize=False)
# 高斯滤波
# 用5*5的核进行卷积操作,但核上离中心像素近的参数大。
guassian = cv2.GaussianBlur(img, (5, 5), 1)
# 中值滤波
# 将某像素点周围5*5的像素点提取出来,排序,取中值写入此像素点。
mean = cv2.medianBlur(img, 5)

# 展示效果
titles = ['Original figure', 'blur', 'box_norm', 'box_no_norm', 'guassian', 'mean']
images = [img, blur, box1, box2, guassian, mean]
for i in range(6):
    plt.subplot(2, 3, i+1), plt.imshow(images[i])
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])
plt.show()

最终得到:
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!