本文目录一览

1,凯妮英文名字怎么拼装

cake

凯妮英文名字怎么拼装

2,Canny算子的介绍

Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。更为重要的是 Canny 创立了边缘检测计算理论(Computational theory of edge detection)解释这项技术如何工作。

Canny算子的介绍

3,canny是什么意思

canny 英[?k?ni]美[?k?ni]adj. 谨慎的; 精明的,狡猾的; 俭约的;[例句]He was far too canny to risk giving himself away他非常精明,不会冒险暴露自己。[其他] 比较级:cannier 最高级:canniest

canny是什么意思

4,如何得到经过canny边缘检测的边缘点或者边缘曲线

canny边缘检测器是使用函数edge的最有效边缘检测器。该方法总结如下:1、图像使用带有指定标准偏差σ的高斯滤波器来平滑,从而可以减少噪声。2、在每一点处计算局部梯度g(x,y)=[g2x+g2y]1/2 和边缘方向α(x,y)=arctan(gy/gx)。边缘点定义为梯度方向上其强度局部最大的点。3、第2条中确定的边缘点会导致梯度幅度图像中出现脊。然后,算法追踪所有脊的顶部,并将所有不在脊的顶部的像素设为零,以便在输出中给出一条细线,这就是众所周知的非最大值抑制处理。脊像素使用两个阈值t1和t2做阈值处理,其中t1

5,canny算法的OpenCV中的Canny函数

采用 Canny 算法做边缘检测void cvCanny( const CvArr* image, CvArr* edges, double threshold1,double threshold2, int aperture_size=3 );--image 输入图像.--edges 输出的边缘图像--threshold1 第一个阈值--threshold2 第二个阈值--aperture_size Sobel 算子内核大小 (见 cvSobel).函数 cvCanny 采用 CANNY 算法发现输入图像的边缘而且在输出图像中标识这些边缘。threshold1和threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。

6,为什么opencv的canny函数检测边缘的效果和matlab的不同

可以明显的看出matlab的边缘更为细腻。首先回顾一下传统的canny算法的主要步骤:1、使用sobel差分算子求出灰度图像的x和y方向导数;2、求出图像各点梯度大小及其方向;3、设置高低两个阈值,梯度大于高阈值为强边像素点,大于低阈值为潜在可能是较弱的边缘点;4、在经过一次筛选剩下的强边缘点中沿着梯度方向进行非极大值抑制;5、顺着二次筛选后的强边点寻找邻近的弱边点得到最终的边缘。opencv和matlab都基本按照以上步骤得到各自的canny 函数,但一般来说处理之前都先对图像进行模糊平滑,这样得到的效果更好。opencv更注重实时性,所以连平滑都作为可选项放在函数外,而matlab则 更注重质量,除了加入平滑操作外,还有其他一系列的优化操作,以下逐项比较。1、模糊平滑这一项其实对生成的边缘效果影响十分大,平滑的越流畅则生成的边缘越圆滑,一 般使用高斯低通滤波;那么滤波器的大小以及高斯分布的方差是两个关键的参数,通过实验确定取什么值最优,但一般用5×5和方差为2的就可以 了,opencv的cvSmooth函数可以进行平滑,一般都是使用输入和输出都是8位深的图像,而matlab是把图像转换为浮点类型后进行平滑操作, 这样一来从精度上说matlab就已经更胜一筹了,因为这直接决定后面的求导运算得到的两个方向导数的精度。2、梯度在sobel的运用上两者是一致的,但是求梯度的方向的算法两者是截然不同 的,但本质一样,效果经过笔者测试基本相同。在梯度的大小方面,opencv提供了欧式距离和哈密顿距离两种度量方式,前者是平方和后开方,后者是直接绝 对值的加和,opencv默认使用后者,我们知道((x2+y2)/2)1/2>=(|x|+|y|)/2,以及|x|+|y|>=(x2+y2)1/2 所以理论上使用哈密顿距离也基本符合真实数值,但总归是有精度上的差别,这也是为什么有人说opencv的canny不如matlab好的第二个原因了,在cv.h里面可以通过修改CV_CANNY_L2_GRADIENT来进行切换。3、阈值这里的阈值是梯度大小是否能够通过的开关,opencv的阈值都采用手工设置的方式,而matlab是把所有点的强度作出直方图,保留一定百分比的强边缘,这个步骤的差别不会影响结果的质量,但是在速度上当然会有差别,这是速度和方便程度的矛盾。4、薄边效果经过非极大值抑制后的边缘基本上是一到两个像素点的宽度,最终希望得到一个线 宽的边缘,opencv只是通过简单的判断来防止并行或者并列出现两个强边像素,这种简单的薄边手法会导致边缘的断裂,而matlab采用了Louisa Lam, Seong-Whan Lee, and Ching Y. Wuen, "Thinning Methodologies-A Comprehensive Survey," IEEE TrPAMI, vol. 14, no. 9, pp. 869-885, 1992. 这边文章的方法进行两次薄边处理,效果相当好,所得的边缘十分圆滑。综上所述,要想opencv的效果和matlab的差不多就必须在平 滑上下功夫,梯度的大小要用欧式距离度量,另外要加入matlab的薄边算法,这样一来处理时间大概会增加一倍,但也基本可以满足实时处理。另外在一般视 觉应用中可以把算法修改为一个阈值,去掉强弱边连接这一步骤以提高速度.

文章TAG:英文  英文名  英文名字  名字  canny  
下一篇