Opencv之图像降噪(平滑)

图像降噪(平滑)

介绍

图像降噪的英文名称是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()

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

发布了42 篇原创文章 · 获赞 1 · 访问量 761

猜你喜欢

转载自blog.csdn.net/qq_36758914/article/details/104027340