【opencv】(3) 图像滤波:均值、方框、中值、高斯
内容有: 均值滤波 cv2.blur(),方框滤波 cv2.boxFilter(),高斯滤波 cv2.GaussianBlur(),中值滤波 cv2.medianBlur()
滤波可理解为,平均卷积操作。对于图像上存在的噪声点,通过滤波平滑处理操作,可以去除噪声点。在开始前我们先导入需要用的库文件,获取需要用到的图片。
import cv2
# 指定图像所在文件夹位置
filepath = 'C:\\Users\\admin\\.spyder-py3\\test\\opencv\\img'
# 获取文件夹中某张图像
img = cv2.imread(filepath+'\\lina.jpg')
# 显示图像
cv2.imshow('img',img) # (自定义窗口名,图象变量)
cv2.waitKey(0) # 图像不会自动消失
cv2.destoryAllWindows() # 按下任意键图像消失
1. 均值滤波
原理: 卷积核在图像上滑动,将核的锚点放在该特定位置的像素上,同时,核内的其他值与该像素邻域的各像素重合;对卷积核内的所有像素值求平均,将所得结果放到与锚点对应的像素上;对图像所有像素重复上述过程。
方法:cv2.blur(img, ksize)
img表示图像变量;ksize表示卷积核大小(n,n),卷积核是值全为1的矩阵
#(1)均值滤波
# 参数:输入的图像数据,卷积核大小,即滑窗的宽和高,一般用奇数
blur = cv2.blur(img,(3,3))
# 显示图像
cv2.imshow('blur',blur)
cv2.waitKey(0)
cv2.destoryAllWindows()
2. 方框滤波
原理: 卷积核在图像上滑动,将核的锚点放在该特定位置的像素上,同时,核内的其他值与该像素邻域的各像素重合;方框滤波有2种方法(1)将卷积核内所有像素值相加,超过255的像素值变成255;(2)对卷积核内的所有像素值求平均。将所得结果放到与锚点对应的像素上;对图像所有像素重复上述过程。
如果方框滤波使用第2种方法得到的结果和均值滤波的结果一样。
滤波函数: cv2.boxFilter(img, -1, ksize, normalize)
img代表输入图像;-1代表得到的结果在颜色通道上是一致的,一般不用改;ksize代表卷积核大小;normalize代表是否归一化,如果为True,得到的结果同均值滤波。
#(2)方框滤波
# 卷积核3*3
box = cv2.boxFilter(img,-1,(3,3),normalize=True)
# 显示图像
cv2.imshow('box',box)
cv2.waitKey(0)
cv2.destoryAllWindows()
下图左侧是normalize=False的图像,右侧是normalize=True的图像
3. 高斯滤波
原理: 卷积核在图像上滑动,将核的锚点放在该特定位置的像素上,同时,核内的其他值与该像素邻域的各像素重合;卷积核内的权重值服从高斯分布,离中心点越近的点权值越大。将卷积核内各值与相应像素值做内积,将乘积相加后求平均,将所得结果放到与锚点对应的像素上;对图像所有像素重复上述过程。
滤波方法: cv2.GaussianBlur(img, ksize, 标准差x, 标准差y)
img代表输入图像;ksize卷积核大小,滑窗宽度高度为奇数;标准差x代表沿x方向的卷积核的标准差;标准差y代表沿y方向的卷积核的标准差,不设置的话则和x轴的标准差一致
# 输入图像,卷积核大小,沿x轴方向的标准差=1,沿y轴标准差不设置的话和沿x轴一样
aussian = cv2.GaussianBlur(img, (5,5), 1)
# 显示图像
cv2.imshow('aussian',aussian)
cv2.waitKey(0)
cv2.destoryAllWindows()
下图左侧为原图,右侧为高斯滤波后的图
4. 中值滤波
原理: 卷积核在图像上滑动,将核的锚点放在该特定位置的像素上,同时,核内的其他值与该像素邻域的各像素重合;被卷积核框住的像素值从小到大排序,取中间大小的像素值代替滑窗中最中间的值。将所得结果放到与锚点对应的像素上;对图像所有像素重复上述过程。
滤波方法: cv2.medianBlur(img, ksize)
img代表输入的图像,ksize代表滤波模板的尺寸大小,填一个数值,必须是大于1的奇数
#(4)中值滤波
median = cv2.medianBlur(img,5) # 用5*5的卷积核去做滑窗,排序后,取中间那个值
# 显示图像
cv2.imshow('median',median)
cv2.waitKey(0)
cv2.destoryAllWindows()
下图左侧为原图,右侧为滤波后的图像。可以看出,中值滤波对处理椒盐噪声具有很好的效果。
最后我们来把这三种滤波(均值、高斯、中值)图像放在一起看一下
#(5)一个窗口显示多个图像
# np.hstack()表示沿着横向堆叠
# np.vstack()表示沿着纵向堆叠
# 参数应该为一个元组
import numpy as np
res = np.hstack((blur,aussian,median))
# 图像显示
cv2.imshow('result',res)
cv2.waitKey(0)
cv2.destoryAllWindows()
【opencv】(3) 图像滤波:均值、方框、中值、高斯相关推荐
- Opencv之图像滤波:5.中值滤波(cv2.medianBlur)
之前介绍的均值滤波.方框滤波.高斯滤波,都是线性滤波方式.由于线性滤波的结果是所有像素值的线性组合,因此含有噪声的像素也会被考虑进去,噪声不会被消除,而是以更柔和的方式存在.这时使用非线性滤波效果可能 ...
- opencv方框内图像保存_opencv 图像滤波(均值,方框,高斯,中值)
为什么要使用滤波 消除图像中的噪声成分叫作图像的平滑化或滤波操作.信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没.因此一个能降低高频成分幅度的滤波 ...
- 图像局部均值、中值、方差求取结合opencv
结合opencv求取图像的局部均值.中值.方差: //src 为待处理图像 //indexrows 为图像遍历的行数 //indexcols 为图像遍历的列数 //meanv 保存均值 //ker 窗 ...
- 滤波算法、中值和均值滤波区别
滤波算法: 这里所讲的算法都是针对图像空间的滤波算法,其中模板,可以理解为图像形态学中的结构元素,是用来选取图像中的那些像素点被用来操作的.空间滤波根据其功能划分为平滑滤波和锐化滤波.平滑滤波:能减 ...
- 图像处理:推导五种滤波算法(均值、中值、高斯、双边、引导)
目录 概论 算法原理 1.均值滤波 2.中值滤波 3.高斯滤波 4.双边滤波 5.引导滤波 手写代码 Opencv代码实现 最后的总结 参考文章 概论 本来打算是分开推导的,但我觉得还是整个合集吧,避 ...
- c语言均值滤波步骤,关于中值滤波算法,以及C语言实现
中值滤波是一种非线性的图像平滑方法,与均值滤波器以及其他线性滤波器相比,它能够很好地滤除脉冲噪声,同时又能够保护目标图像边缘.它是一种邻域运算, 类似于卷积,但计算的不是加权求和,而是把邻域中的像素按 ...
- CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)
CV:计算机视觉技术之图像基础知识(一)-以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边) 目录 一.图像中的傅里叶变换 1 ...
- NR基础篇下——中值滤波、多级中值滤波、多级中值混合滤波、加权中值滤波、中值有理滤波
上一篇分享了一些均值滤波相关的算法,均值滤波作为一种线性滤波器,在滤除噪声的同时也会导致边缘模糊问题.而且均值滤波对高斯噪声的效果很好,但是对于椒盐噪声的效果就很一般.但是中值滤波作为一种顺序滤波器, ...
- 使用Python,OpenCV实现图像和实时视频流中的人脸模糊和马赛克
使用Python,OpenCV实现图像和实时视频流中的人脸模糊和人脸马赛克 1. 效果图 2. 原理 2.1 什么是人脸模糊,如何将其用于人脸匿名化? 2.2 执行人脸模糊/匿名化的步骤 3. 源码 ...
- 【概率论】4-5:均值和中值(The Mean and the Median)
原文地址1:https://www.face2ai.com/Math-Probability-4-5-The-Mean-and-the-Median转载请标明出处 Abstract: 本文介绍均值和中 ...
最新文章
- linux编程 fmemopen函数打开一个内存流 使用FILE指针进行读写访问
- Redis:Redis集群模式(Cluster)原理
- ACM算法--枚举方法(指数枚举,组合枚举)模板
- Visual Studio 20xx试用版升级为正式版(WIN7同样有效)图解、附带序列号
- Android开发中的logcat工具使用方法
- 【opencv 学习】使用tesseract-ocr机芯数字识别
- Exchange 2013 邮箱管理
- 《Velocity 模板使用指南》中文版[转]
- 揭秘孙小小《PPT演示之道》
- windows部署PHP开发的cms系统
- 全自动驾驶论文_自动驾驶汽车:我们距离全自动驾驶有多近?
- 企业级 布署 vmvare Esxi 5.0.0 从零开始教程 (二) vSphere clinet 安装
- 联想服务器装系统鼠标没反应,联想Thinkpad笔记本重装系统后键盘鼠标失灵如何解决...
- 酷柚易汛进销存开发进度一览表以及各版本之间区别!
- 图表点编辑数据无反应_excel输入数据表格没反应-点击EXCEL插入图表没有反应
- ​创业10年的领导口出狂言:80后该退出IT行业!网友怒怼!
- 硅谷高管中国行感受:思维太单一,996式加班意义不大
- Android实用代码大全
- 鸿蒙符和无级符,《少年三国志》乾坤无极评析:乾坤闪避控制废,无极复活两将兴?...
- matlab实现牛顿迭代法求解二元函数最优点并绘制动态图像