图像平滑化处理 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的方框滤波 其余是看不到特别明显效果
合集:
Opencv
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)