文章目录
- 1、图像滤波
- 2、各滤波特点
- 2.1 均值滤波
- 2.2 高斯滤波
- 2.3中值滤波
- 3、案例分析
- 3.1 均值滤波
- 3.1.1 代码
- 3.1.2 blur
- 3.2 高斯滤波
- 3.2.1 代码
- 3.2.2 GaussianBlur
- 3.3 中值滤波
- 3.3.1 代码
- 3.3.2 medianBlur
- 3.4 完整代码
- 4、效果展示
- 4.1 均值滤波
- 4.2 高斯滤波
- 4.3 中值滤波
1、图像滤波
所谓滤波,顾名思义,能够起到图像过滤的作用,本文简单简单介绍,均值滤波,高斯滤波,中值滤波。当然,还有方框滤波,双边滤波器,可分离滤波等,后期遇到了就再补上。本文实现方法均为opencv提供接口。
2、各滤波特点
2.1 均值滤波
原理:均值滤波采用多次测量取平均值的思想,用每一个像素周围的像素的平均值代替自身,具体大小可以指定。
优点:能够将受到噪声影响的像素,使用该噪声周围的像素值进行修复。
缺点:使得像素之间的差距变小,图像变得模糊。
2.2 高斯滤波
原理:高斯滤波主要用来去除高斯噪声,具体原理比较复杂,这里就不介绍了。
2.3中值滤波
原理:中值滤波将待处理来的像素周围像素从小到大排序,取中值代替该像素。
优点:可以有效去除椒盐噪声
缺点:当卷积核较大时,仍然使得图像变得模糊,而且计算量很大。
3、案例分析
3.1 均值滤波
3.1.1 代码
#均值滤波
MeanBlur3 = cv.blur(image,(3,3))
MeanBlur7 = cv.blur(image,(7,7))
Result1 = cv.hconcat((image,MeanBlur3,MeanBlur7))
cv.imshow("MeanBlurResult",Result1)
cv.waitKey()
3.1.2 blur
blur(src, Size)
**src:**输入图像
**Size:**卷积核尺寸
3.2 高斯滤波
3.2.1 代码
#高斯滤波
GaussBlur3 = cv.GaussianBlur(image,(3,3),sigmaX=10,sigmaY=20)
GaussBlur7 = cv.GaussianBlur(image,(3,3),sigmaX=10,sigmaY=20)
Result3 = cv.hconcat((image,GaussBlur3,GaussBlur7))
cv.imshow("GaussBlurResult",Result3)
cv.waitKey()
3.2.2 GaussianBlur
GaussianBlur(src, Size, sigmaX,sigmaY)
src:输入图像
Size:卷积核大小
sigmaX:X轴方向标准差大小
sigmaY:Y轴方向标准差大小
3.3 中值滤波
3.3.1 代码
#中值滤波
MedianBlur3 = cv.medianBlur(image,3)
MedianBlur7 = cv.medianBlur(image,3)
Result2 = cv. hconcat((image,MedianBlur3,MedianBlur7))
cv.imshow("MedianBlurResult",Result2)
cv.waitKey()
3.3.2 medianBlur
medianBlur(src,size)
src:输入图像
size:卷积核大小
3.4 完整代码
def MyBlur(image):
#均值滤波
MeanBlur3 = cv.blur(image,(3,3))
MeanBlur7 = cv.blur(image,(7,7))
Result1 = cv.hconcat((image,MeanBlur3,MeanBlur7))
cv.imshow("MeanBlurResult",Result1)
cv.waitKey()
#高斯滤波
GaussBlur3 = cv.GaussianBlur(image,(3,3),sigmaX=10,sigmaY=20)
GaussBlur7 = cv.GaussianBlur(image,(3,3),sigmaX=10,sigmaY=20)
Result3 = cv.hconcat((image,GaussBlur3,GaussBlur7))
cv.imshow("GaussBlurResult",Result3)
cv.waitKey()
#中值滤波
MedianBlur3 = cv.medianBlur(image,3)
MedianBlur7 = cv.medianBlur(image,3)
Result2 = cv. hconcat((image,MedianBlur3,MedianBlur7))
cv.imshow("MedianBlurResult",Result2)
cv.waitKey()
return;
4、效果展示
4.1 均值滤波
4.2 高斯滤波
4.3 中值滤波