opencv2函数学习之blur,GaussianBlur,medianBlur和bilateralFilter:实现图像平滑处理
学习 实现 处理 函数 图像 平滑
2023-09-11 14:17:16 时间
在opencv2中,可能使用blur对图像进行平滑处理,这种方法就是最简单的求平均数。
-
平滑 也称 模糊, 是一项简单且使用频率很高的图像处理方法。
-
平滑处理的用途有很多, 但是在很多地方我们仅仅关注它减少噪声的功用。
-
平滑处理时需要用到一个 滤波器 。 最常用的滤波器是 线性 滤波器。
void blur( const Mat& src, Mat& dst,Size ksize, Point anchor=Point(-1,-1),int borderType=BORDER_DEFAULT );
参数:
src:原图像。
dst:目标图像。
ksize:定义滤波器的大小。如Size(3,3)。
anchor:指定锚点位置(被平滑点), 如果是负值,取核的中心为锚点。可省略
borderType:推断边缘像素,一般取默认值BORDER_DEFAULT。可省略
例:
blur(src,dst,Size(3,3));
OpenCV2函数 GaussianBlur 执行高斯平滑,高斯滤波是将输入数组的每一个像素点与 高斯内核 卷积,将卷积和当作输出像素值。
void GaussianBlur( const Mat& src, Mat& dst, Size ksize,double sigmaX, double sigmaY=0,int borderType=BORDER_DEFAULT );
参数:
sigmaX:x方向的标准方差。可设置为0让系统自动计算。
sigmaY:y方向的标准方差。可设置为0让系统自动计算。
例:
GaussianBlur(src,dst,Size(9,9),0,0);
OpenCV2函数 medianBlur 执行中值滤波操作,中值滤波将图像的每个像素用邻域 (以当前像素为中心的正方形区域)像素的 中值 代替 。
void medianBlur( const Mat& src, Mat& dst, int ksize );
OpenCV2函数 bilateralFilter 执行双边滤波操作,类似于高斯滤波器,双边滤波器也给每一个邻域像素分配一个加权系数。 这些加权系数包含两个部分, 第一部分加权方式与高斯滤波一样,第二部分的权重则取决于该邻域像素与当前像素的灰度差值。
void bilateralFilter( const Mat& src, Mat& dst, int d,double sigmaColor, double sigmaSpace,int borderType=BORDER_DEFAULT );
参数:
d:像素的邻域直径。
sigmaColor:颜色空间的标准方差.
sigmaSpace:坐标空间的标准方差(像素单位).
例:
bilateralFilter ( src, dst, i, i*2, i/2 );
……
相关文章
- 多线程编程学习笔记-基础(一)
- 浏览器中实现深度学习?有人分析了7个基于JS语言的DL框架
- 学习C++ -> 类(Classes)的定义与实现
- 学习NGUI前的准备NGUI的相关信息
- 在opencv3中实现机器学习之:利用svm(支持向量机)分类
- MVC3学习:实现文章上一篇下一篇链接
- 大数据学习——hdfs客户端流式操作代码的实现
- SQLite学习笔记(八)&&sqlite实现架构
- android源码学习-View如何显示到屏幕上
- 浅析了解实现微前端的3种模式(自组织Nginx路由分发、基座容器模式、模块加载模式)、webpack5 Module Federation(模块联邦)是什么、基于模块联邦实现微前端的方案学习
- [转]Java学习---7大经典的排序算法总结实现
- 深度学习-线性代数基础
- Android学习之Dialog的实现
- 挖坑:handoop2.6 开启kerberos(全流程学习记录)
- 翻翻git之---自己定义邮件发送buttonSendButton(流程分析,实现思路能够学习下)
- pretext task和downstream task是什么意思?(自监督学习)