【python-opencv入门笔记】6 - 图像平滑(均值滤波、方盒滤波、高斯滤波、中值滤波)
lur是均值滤波函数,第一参数为图像,第二参数为卷积核大小
·
测试图片:使用噪声lena
1、原始图像显示
import cv2 as cv
img=cv.imread("./lenaNoise.jpeg")
cv.imshow("test",img)
cv.waitKey(0)
cv.destroyAllWindows()
2、均值滤波操作
简单的卷积操作:
import cv2 as cv
img=cv.imread("./lenaNoise.jpeg")
blur=cv.blur(img,(3,3)) #blur是均值滤波函数,第一参数为图像,第二参数为卷积核大小
cv.imshow("blur",blur)
cv.imshow("img",img)
cv.waitKey(0)
cv.destroyAllWindows()
- 示例图中黄色区域为卷积核,3*3
- 卷积核内值累加后,平均
- 所以叫平均滤波
运行结果:右侧为执行均值滤波后的效果,大家可以自己修改卷积核数值查看效果
3、方盒滤波操作
import cv2 as cv
img=cv.imread("./lenaNoise.jpeg")
box=cv.boxFilter(img,-1,(3,3),normalize=True)
cv.imshow("box",box)
cv.imshow("img",img)
cv.waitKey(0)
cv.destroyAllWindows()
基本原理与均值滤波一样
方盒滤波函数:boxFilter
- src:输入图像
- ddepth:输出图像深度,-1表示与原图像一样,一般都是-1
- ksize:卷积核大小,是一个元组
运行结果:右侧为执行均值滤波后的效果,大家可以自己修改卷积核数值查看效果
4、高斯滤波操作
import cv2 as cv
img=cv.imread("./lenaNoise.jpeg")
gauss=cv.GaussianBlur(img,(5,5),1)
cv.imshow("gauss",gauss)
cv.imshow("img",img)
cv.waitKey(0)
cv.destroyAllWindows()
符合高斯分布,离卷积核越近,越重要
5、中值滤波操作
import cv2 as cv
img=cv.imread("./lenaNoise.jpeg")
gauss=cv.GaussianBlur(img,(5,5),1)
cv.imshow("gauss",gauss)
cv.imshow("img",img)
cv.waitKey(0)
cv.destroyAllWindows()
顾名思义,中值,中间值,不是平均值!!!
更多推荐
所有评论(0)