OPENCV-5 学习笔记

OPENCV-5 学习笔记

线性滤波

  • 方框滤波——boxblur函数
  • 均值滤波(邻域平均滤波)——blur函数
  • 高斯滤波——GaussianBlur函数
  • 中值滤波——medianBlur函数
  • 双边滤波——bilateralFilter函数

关于滤波和模糊—–滤波可分低通滤波和高通滤波两种。而高斯滤波是指用高斯函数作为滤波函数的滤波操作,至于是不是模糊,要看是高斯低通还是高斯高通,低通就是模糊,高通就是锐化。

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。

//载入原图  
Mat image = imread("e://4.jpg");
//创建窗口  
namedWindow("高斯滤波【原图】");
namedWindow("高斯滤波【效果图】");
//显示原图  
imshow("高斯滤波【原图】", image);
//进行高斯滤波操作,其他方式类似
Mat out;
GaussianBlur(image, out, Size(5, 5), 0, 0);
//显示效果图  
imshow("高斯滤波【效果图】", out);
waitKey(0);

非线性滤波

  • 中值滤波——medianBlur函数
    • void medianBlur(InputArray src,OutputArray dst, int ksize)
    • int类型的ksize,孔径的线性尺寸(aperture linear size),注意这个参数必须是大于1的奇数,比如:3,5,7,9 …
  • 双边滤波——bilateralFilter函数
    • void bilateralFilter(InputArray src, OutputArraydst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT)

开运算:先腐蚀后膨胀的过程—可以用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积

闭运算:先膨胀后腐蚀的过程—能够排除小型黑洞(黑色区域)

形态学梯度:膨胀图与腐蚀图之差—可以用形态学梯度来保留物体的边缘轮廓

顶帽运算:为原图像与“开运算“的结果图之差—当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取

黑帽运算为:”闭运算“的结果图与原图像之差—用来分离比邻近点暗一些的斑块

morphologyEx函数

void morphologyEx(InputArray src,OutputArray dst,int op,InputArraykernel,Pointanchor=Point(-1,-1),intiterations=1,intborderType=BORDER_CONSTANT,constScalar& borderValue=morphologyDefaultBorderValue());  

op类型:

  • MORPH_OPEN – 开运算(Opening operation)
  • MORPH_CLOSE – 闭运算(Closing operation)
  • MORPH_GRADIENT -形态学梯度(Morphological gradient)
  • MORPH_TOPHAT - “顶帽”(“Top hat”)
  • MORPH_BLACKHAT - “黑帽”(“Black hat“)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node --- 监听文件变化(静态、动态、子进程)

静态版本:监听的文件名写死了 // watcher.js use strict const fs require(fs); fs.watch(target.txt, () > console.log(File changed!)); console.log(Now watching target.txt for changes...);命令行启动 node watcher.js动态版本:在命令行输入需要监听的文件名. pr…

redis学习总结

一、redis工作流程 1、把redis安装到Linux上 2、配置redis.conf文件 使之可以后台运行 3、根据项目需求添加相应的jar包 4、调用相应的api实现项目需求 二、redis相关知识 1、redis是缓存数据库,为了减少对关系型数据库的访问消耗,可以把常用的数据添加…

OPENCV-6 学习笔记

OPENCV-6 学习笔记 边缘检测 步骤: 滤波增强检测 canny算子—Canny 的目标是找到一个最优的边缘检测算法 评价标准: 1.低错误率: 标识出尽可能多的实际边缘,同时尽可能的减少噪声产生的误报。 2.高定位性: 标识出的边缘要与图像中的实…

es6 --- Promise封装读取文件操作

Promise: es6中为了解决回调地狱问题而产生的 Promise的参数 Promise的参数是一个函数.每个Promise在实例化时,都会立即执行参数里的函数 const p new Promise(()>{console.log(1); })// 解释了上面的第2条Promise参数的参数 Promise的参数(函数),默认有2个参数(resol…

匿名函数

匿名函数:lambda 函数 语法: lambda 参数1, 参数2 : 表达式 表达式即为返回值 例: result (lambda x, y: xy)(1.2) print(result) 例2: newFunc lambda x,y : xy print(newFunc(1,2) 例3: result sorted…

hdu-6165(tarjan+topusort)

题意:一个有向图,无自环,无重边,让你判断这个图内的任意两点是否有路; 解题思路:首先,判断两个点是否可达一般用出入度来判断,如果在拓扑排序中同时有两个及以上入度同时为零的点&am…

OPENCV-7 学习笔记

OPENCV-7 学习笔记 转换图像尺寸 resize函数。这是最直接的方式,yrUp( )、pyrDown( )函数。即图像金字塔相关的两个函数,对图像进行向上采样,向下采样的操作。 图像金字塔 类似于金字塔的形状,将原始图像以金字塔形状的分辨率…

杂项:E-Learning

ylbtech-杂项:E-Learning1.返回顶部 1、E-Learning:英文全称为(Electronic Learning),中文译作“数字(化)学习”、“电子(化)学习”、“网络(化)学…

css --- flex布局的应用(between)

between 想把发布时间放在左边,点击放在右边 页面结构如下: 可以看到发布时间和点击是在类 .mui-ellipsis 下.使用css3的 flex 布局中的: space-between .mui-ellipsis{display: flex;justify-content: space-between; }

WeUI

介绍: WeUI是微信设计团队为微信网站开发量身定做的微信类UI界面,旨在改善和规范微信用户体验。包括组分如button,cell,dialog,progress,toast,article,actionsheet,icon…

php中的json

php中的json函数主要有三个: 函数描述json_encode()对变量进行 JSON 编码json_decode对 JSON 格式的字符串进行解码,转换为 PHP 变量json_last_error返回最后发生的错误 认识前提: {},花括号代表包装的是一个对象数据&#xff0…

vue --- 全局配置过滤函数,使用moment函数来格式化时间

效果1 YYYY-MM-DD 效果2 YYYY-MM-DD HH:mm:ss 配置注意事项 由于时间格式化,在大多数页面中都会用到,因此建议配置在全局中 使用moment函数 -> http://momentjs.cn/ npm 安装 # 命令行 cnpm i moment -S在全局中配置 // main.js import moment from momentVue.f…

2018ICPC南京赛区网络赛J Sum(素数筛+找规律)

素数筛链接:https://blog.csdn.net/dl962454/article/details/76595623 【题意】 f(i):能拆成两个数的乘积,并且这两个数要求没有平方因子,并且两个数的位置互换算两种方案。 最后求f(1)f(2)f(3)...f(n)。 【解题思路】…

[UE4]C++中extern关键字浅谈

变量声明和变量是有区别的 extern int i; //只是声明i而非定义i int j; //声明而且还定义了j 任何一个显式初始化的声明都将成为定义,而不管有没有extern,extern语句一旦变量赋予了初始值就变成了定义。 extern double pi3.1415926; //定义 stat…

PHP 计算两个两个文件的相对路径

例: a‘/a/b/c/d/e.php′;a = ‘/a/b/c/d/e.php’; b ‘/a/b/12/34/c.php’; 二者的相对路径结果为:/a/b/12/34/../../c/d/e.php //计算出$b相对于$a的相对路径: function getRelativePath($a,$b){$returnPath array(dirname($b));$arrA explode(…

vue --- 使用vue-router获取带参数的路由

希望的效果如下: 2个路由: 点击如下 步骤. 使用 router-link 来指定路由路径在router.js中指定 路径的 事件处理函数(对应的组件)创建对应的组件 router-link 找到一个区别各个列表的属性(id),将其作为参数传递到路由中to是vue-router中用来绑定路由的属性由于需要进行计…

.Net Core2.*学习手册

1.net core 基础知识解析(创建一个.net core网站)(视频录制) 1.1 Startup解析(没写)   1.2 目录结构分析(没写)   1.3 使用静态文件(没写)   1.4 Controller(没写)   1.5 Razor页面(没写) 1.6.net core appsetting/获取配置文件   2.创建.net core项目 2.1 创建一个项…

java中static详解

这个博主写的总结很好,这里附上链接http://www.cnblogs.com/dolphin0520/p/3799052.html 下面进行简要总结: 在《Java编程思想》P86页有这样一段话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有…

PHP 实现中文截取无乱码的方法

PHP 实现中文截取无乱码的方法 需知: 中文字符在gbk编码下为2个字符,utf-8下为3个字符中文字符的ASCII值是从0xa0后开始的通过ord()函数可以返回字符串中第一个字符的ASCII值,chr()函数作用相反 方法: function GBsubstr($str…

vue --- 全局注册子组件,并导入全局的子组件

假设: 需要一个评论的模块comment由于comment在多个页面中可能会复用.于是创建一个comment.vue 步骤: 创建comment.vue在需要引用的位置使import comment from ../subcomponent/Comment.vue 导入子组件在Vue实例中使用components属性注册注册的规则: “comment-box” : comm…