canny对边缘进行检测,有三个原则: 1、信噪比原则:以低的错误率检测边缘,也即意味着需要尽可能准确的捕获图像中尽可能多的边缘。 2、定位精度原则:检测到的边缘应精确定位在真实边缘的中心。 3、单位缘响应原则:图像中给定的边缘应只被标记一次,并且在可能的情况下,图像的噪声不应产生假的边缘。 基本思想:首先对图像进行高斯滤波平滑图像,然后采用非极值抑制技术进行处理得到最后的边缘图像。 实现步骤: 1、高斯平滑滤波。为了去除噪声 2、计算梯度强度和方向。边缘的最重要的特征是灰度值剧烈变化,如果把灰度值看成二元函数值,那么灰度值的变化可以用二元函数的”导数“(或者称为梯度)来描述。由于图像是离散数据,导数可以用差分值来表示,差分在实际工程中就是灰度差,说人话就是两个像素的差值。一个像素点有8邻域,那么分上下左右斜对角,因此Canny算法使用四个算子来检测图像中的水平、垂直和对角边缘。算子是以图像卷积的形式来计算梯度,比如Roberts,Prewitt,Sobel等,这里选用Sobel算子来计算二维图像在x轴和y轴的差分值 3、非极大值抑制。sobel算子检测出来的边缘太粗了,我们需要抑制那些梯度不够大的像素点,只保留最大的梯度,从而达到瘦边的目的。这些梯度不够大的像素点很可能是某一条边缘的过渡点。按照高数上二维函数的极大值的定义,即对点(x0,y0)的某个邻域内所有(x,y)都有f(x&#