图像平滑化处理 Opencv(python)

主要是以下一些简单的处理方法

1 均值滤波就是 在该点附近的 A X B的像素框内 将每点的灰度系数求平均后赋值该点

1 #均值滤波
2 blur = cv2.blur(img,(3,3))#卷积操作
3 Cv_show('Average Filter Picture', blur)

2 方框滤波 和均值滤波在处理上的主要区别是normalize参数是否取值为True

1 #方框滤波
2 #当normalize参数为True 则执行归一化操作,操作结果相同于均值滤波的操作
3 box1 = cv2.boxFilter(img,-1,(3,3),normalize=True)
4 Cv_show('Box Filter Picture', box1)
5 
6 #当normalize参数为False 则不执行归一化操作,当灰度系数大于255时,则默认为255
7 box2 = cv2.boxFilter(img,-1,(3,3),normalize=False)
8 Cv_show('Box Filter Picture', box2)

3 高斯滤波 根据高斯分布得到离该点越近 则越重要 以此给予像素框内各个像素点权值

1 #高斯滤波
2 #主要是依靠高斯分布的思想,更加重视里该点更近的像素 对框内像素都附加有权值
3 gaussianBlur = cv2.GaussianBlur(img,(5,5),1)
4 Cv_show('Gaussian Blur Picture', gaussianBlur)

4 中值滤波 就是在像素框内的灰度系数排序 然后取中值

1 #中值滤波
2 #将框内像素按照升序或者降序排列 选取中间那个
3 median = cv2.medianBlur(img,5)
4 Cv_show('Median Blur Picture', gaussianBlur)

5 四个方法的比较

1 #展示所有
2 res = np.hstack((blur,box1,box2,gaussianBlur,median)) #hstack为行展示 vstack为列展示
3 Cv_show('Blur,Box Fliter Normalize, Box Fliter, Gaussian, Median Picture',res)

6 注意 

  这是对图片平滑的处理 即图片本身存在噪音 才能看到明显的效果,基本上无噪音的图片 除了Normalize=False的方框滤波 其余是看不到特别明显效果

posted @   落霞&孤鹜  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示