opencv——Canny边缘检测
来源:互联网 发布:好听的淘宝店铺名 编辑:程序博客网 时间:2024/06/07 11:26
opencv——Canny边缘检测
1、对灰度图进行高斯滤波消除噪声。
2、Canny算法中所采用的卷积算子:
2、Canny算法中所采用的卷积算子:
其x向、y向的一阶偏导数矩阵,梯度幅值以及梯度方向的数学表达式为:
3、对幅值进行极大值抑制
图像梯度幅值矩阵中的元素值越大,说明图像中该点的梯度值越大,但这不不能说明该点就是边缘。通俗意义上是指寻找像素点局部最大值,将非极大值点所对应的灰度值置为0。
图(1) 非极大值抑制
根据图1 可知,要进行非极大值抑制,就首先要确定像素点C的灰度值在其8值邻域内是否为最大。图1中蓝色的线条方向为C点的梯度方向,这样就可以确定其局部的最大值肯定分布在这条线上,也即出了C点外,梯度方向的交点dTmp1和dTmp2这两个点的值也可能会是局部最大值。因此,判断C点灰度与这两个点灰度大小即可判断C点是否为其邻域内的局部最大灰度点。如果经过判断,C点灰度值小于这两个点中的任一个,那就说明C点不是局部极大值,那么则可以排除C点为边缘。这就是非极大值抑制的工作原理。
实际上,我们只能得到C点邻域的8个点的值,而dTmp1和dTmp2并不在其中,要得到这两个值就需要对该两个点两端的已知灰度进行线性插值,也即根据图1中的g1和g2对dTmp1进行插值,根据g3和g4对dTmp2进行插值,这要用到其梯度方向。
4、双阈值
- 如果某一像素位置的幅值超过 高 阈值, 该像素被保留为边缘像素。
- 如果某一像素位置的幅值小于 低 阈值, 该像素被排除。
- 如果某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于高阈值的像素时被保留。
0 0
- opencv——Canny边缘检测
- opencv学习——canny边缘检测
- 【OpenCV】Canny 边缘检测
- opencv-canny边缘检测
- opencv canny边缘检测
- openCV Canny边缘检测
- 【openCV】Canny边缘检测
- opencv:canny边缘检测
- opencv-Canny 边缘检测
- opencv Canny边缘检测
- openCV canny边缘检测
- opencv canny边缘检测
- opencv canny边缘检测
- OpenCV Canny边缘检测
- OpenCV中文网站例程——Canny边缘检测
- Opencv对图像做边缘检测——canny算子
- OpenCV-Python—图像梯度和Canny边缘检测
- [Opencv入门笔记] 写图像—Canny边缘检测
- Android 4.0的图形硬件加速及绘制技巧
- BZOJ2087[Poi2010] Sheep
- struts2中配置首页的action
- 升级ubuntu16.04后
- 常用数学公式(不断更新中)
- opencv——Canny边缘检测
- R语言|数据预处理--4变量分析及相关性
- java synchronized类锁,对象锁详解
- 动态规划初步-01背包问题&&一维数组(空间复杂度优化)
- thinkphp 如何使用SessionDB引擎把session存入数据库
- 【安卓-自定义布局】安卓App开发思路 一步一个脚印(九)实现自定义滚动的新闻条目上下滚动-仿蘑菇街
- caffe训练识别自己的图片
- .NET中WebBrowser控件内部页面的JS代码与外部C#代码的相互调用
- 2016中国大学生程序设计竞赛(ccpc 长春)题解报告