opencv2函数学习之blur,GaussianBlur,medianBlur和bilateralFilter:实现图像平滑处理
在opencv2中,可能使用blur对图像进行平滑处理,这种方法就是最简单的求平均数。
平滑 也称 模糊, 是一项简单且使用频率很高的图像处理方法。
平滑处理的用途有很多, 但是在很多地方我们仅仅关注它减少噪声的功用。
平滑处理时需要用到一个 滤波器 。 最常用的滤波器是 线性 滤波器。
void blur( const Mat& src, Mat& dst,Size ksize, Point anchor=Point(-,-),int borderType=BORDER_DEFAULT );
参数:
src:原图像。
dst:目标图像。
ksize:定义滤波器的大小。如Size(3,3)。
anchor:指定锚点位置(被平滑点), 如果是负值,取核的中心为锚点。可省略
borderType:推断边缘像素,一般取默认值BORDER_DEFAULT。可省略
例:
blur(src,dst,Size(,));
OpenCV2函数 GaussianBlur 执行高斯平滑,高斯滤波是将输入数组的每一个像素点与 高斯内核 卷积,将卷积和当作输出像素值。
void GaussianBlur( const Mat& src, Mat& dst, Size ksize,double sigmaX, double sigmaY=,int borderType=BORDER_DEFAULT );
参数:
sigmaX:x方向的标准方差。可设置为0让系统自动计算。
sigmaY:y方向的标准方差。可设置为0让系统自动计算。
例:
GaussianBlur(src,dst,Size(,),,);
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*, i/ );
……
opencv2函数学习之blur,GaussianBlur,medianBlur和bilateralFilter:实现图像平滑处理的更多相关文章
- opencv2函数学习之threshold:实现图像阈值化
在opencv2中,threshold函数可以进行阈值化操作. double threshold( const Mat& src, Mat& dst, double thresh,do ...
- opencv2函数学习之flip:实现图像翻转
在opencv2中,flip函数用来进行图片的翻转,包括水平翻转,垂直翻转,以及水平垂直翻转. void flip(const Mat& src, Mat& dst, int flip ...
- opencv2函数学习之erode、dilate:图像腐蚀和膨胀
图像腐蚀和图像膨胀是图像中两种最基本形态学操作. ,-), ,int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphol ...
- Python3中的字符串函数学习总结
这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...
- Drools 函数学习
Drools 函数学习 函数是定义在规则文件当中一代码块,作用是将在规则文件当中若干个规则都会用到的业务操作封装起来,实现业务代码的复用,减少规则编写的工作量.函数的编写位置可以是规则文件当中 pac ...
- C语言(函数)学习之strstr strcasestr
C语言(函数)学习之[strstr]&[strcasestr]一.strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needl ...
- Java中的回调函数学习
Java中的回调函数学习 博客分类: J2SE JavaJ# 一般来说分为以下几步: 声明回调函数的统一接口interface A,包含方法callback(); 在调用类caller内将该接口设置 ...
- Theano.tensor.round函数学习,同时解决输出Elemwise{xxx,no_inplace}.0的问题
1. 出现Elemwise{xxx,no_inplace}.0 这是因为没有定义theano.function所致,参考下面错误示范: y = np.random.normal(size=(2,2 ...
- C++学习基础十六-- 函数学习笔记
C++ Primer 第七章-函数学习笔记 一步一个脚印.循序渐进的学习. 一.参数传递 每次调用函数时,都会重新创建函数所有的形参,此时所传递的实参将会初始化对应的形参. 「如果形参是非引用类型,则 ...
随机推荐
- Spring实现AOP的多种方式
转载自:https://www.cnblogs.com/best/p/5736422.html:加了一些自己的注释: AOP(Aspect Oriented Programming)面向切面编程,通过 ...
- i2c总线,核心,驱动详解
Linux I2C驱动分析(一)----I2C架构和总线驱动 一.I2C总线原理 I2C是一种常用的串行总线,由串行数据线SDA 和串线时钟线SCL组成.I2C是一种多主机控制总线,它和USB总线不同 ...
- 如何制作一个自适应手机、电脑、ipad的网页方法总结
进入2015年,手机上网的用户已经越来越多,已经赶超PC端.随着2G.3G.4G.免费WIFI和无线基站的不断普及,越来越多的人开始使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端. ...
- Silverlight中Image控件Stretch属性的四种值比较
通过设置Image控件Stretch属性的值可以控制图片的显示形式: 包含的值:None.Fill.Uniform.UniformToFill <Grid x:Name="Layout ...
- 发布自己的第一版asp.net core的RESTful接口程序
使用window开发一个简单的asp.net Core的RESTfull程序,网上很多,这里不说,我是直接使用IDE自己生成的项目来发布的.没有修改过主要代码.在IDE里发布到本地目录,得到类似文件 ...
- uva1653
本来想刷道签到题结果被卡住了.这题题意描述有点问题,数字又不一定都是个位数...难道是我英语太差了? digits就表示0~9这几个数?唉,还是太弱了.这题就是用了一个bfs,应该说还是有点意思的,直 ...
- kepware http接口 java语言开发
读取某变量的值(OK HTTP OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .u ...
- 团队项目之UML图设计---WeEdit
团队信息: 学号: 姓名: 本次博客链接: 041602209 黄毓明(临时队长) https://www.cnblogs.com/mingsonic/p/9820702.html 06160023 ...
- Java 理论与实践: 用弱引用堵住内存泄漏
弱引用使得表达对象生命周期关系变得容易了 虽然用 Java™ 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集.本月,负责保障应用程序健 ...
- 一个前端小白,关于vue\react等框架下table的应用总结
出来实习一个月多,对于前端,运用相关的最多的就是table,想总结一下先关的内容 一.table提供的功能 1.显示表 2.可编辑:分为可编辑行和可编辑块,但是原理都一样就是设置一个flag,true ...