一、引言

1、什么是图片平滑处理?

图像平滑处理(Image Smoothing)是图像处理的一种常见技术,用于减少图像中的噪声和细节,从而产生更加模糊或平滑的图像。这个过程在图像处理中有各种应用,包括去噪、边缘检测前的预处理、纹理分析、模式识别等。图像平滑处理通过模糊图像中的亮度和颜色信息,从而减少噪声并使图像更具可处理性。

2、以下是俩种图片平滑处理方法?

1)高斯滤波(Gaussian Filter)

高斯滤波使用一个高斯分布的权重核来对图像进行加权平均。这意味着中心像素的权重最高,周围像素的权重逐渐减小。高斯滤波通常比均值滤波更有效,因为它更好地保留了图像的细节。

对应python函数为:

cv2.GaussianBlur(src, ksize[, sigmaX[, sigmaY[, dst]]])

其中参数为

参数说明:
src:输入图像,通常是一个NumPy数组。
ksize:滤波器的大小,它是一个元组,表示在水平和垂直方向上的像素数量。例如,(5, 5)表示一个5x5的滤波器。
sigmaX和sigmaY:分别表示在X轴和Y轴方向上的标准差。这些值与滤波器大小相同。默认情况下,它们都等于0,这意味着没有高斯模糊。
dst:输出图像,通常是一个NumPy数组。如果为None,则会创建一个新的数组来存储结果。

2)中值滤波(Median Filter)

中值滤波用于去除图像中的椒盐噪声(Salt and Pepper Noise)。它使用一个窗口内像素值的中值替代中心像素值,因此对异常值具有鲁棒性(也就是健壮和强壮的意思。它是在异常和危险情况下系统生存的能力),但可能在某些情况下不如均值或高斯滤波平滑。

对应python函数为:

cv2.medianBlur(src, ksize[, dst])

其中参数为:

参数说明:
src:输入图像。
ksize:滤波器的大小,它是一个整数,表示在水平和垂直方向上的像素数量。例如,5表示一个5x5的滤波器。
dst:输出图像,通常是一个NumPy数组。如果为None,则会创建一个新的数组来存储结果。

二、实现代码

1、导入库

import cv2

2、所需图像:

noise.png

3、高斯滤波处理

GaussianB = cv2.GaussianBlur(noise,(3,3),1) #标准差为1,标准正太分布。
cv2.imshow('GaussianBlur',GaussianB)
cv2.waitKey(0)#按任意键退出
cv2.destroyAllWindows()

输出结果为:

4、中值滤波:

medianB=cv2.medianBlur(noise,3)
cv2.imshow('medianB',medianB)
cv2.waitKey(0)

cv2.destroyAllWindows()

输出结果为:

注:中值滤波是去噪效果较好的图片平滑处理方法

点击阅读全文
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐