Canny边缘检测的主要步骤包括以下几个部分:
噪声抑制:使用高斯滤波器去除图像中的噪声。
梯度计算:使用Sobel算子计算图像中每个像素的梯度大小和方向。
梯度方向量化:将梯度方向量化为四个方向之一(水平、垂直和两个对角线方向)。
非极大值抑制:对于每个像素,检查它是否是其梯度方向上局部最大值。如果是,则保留该像素作为可能的边缘像素。
双阈值检测:将像素分为强边缘、弱边缘和非边缘三类。强边缘像素是梯度值最大的像素,弱边缘像素是梯度值次大的像素,非边缘像素是梯度值较小的像素。如果一个像素的梯度值大于高阈值,则将其标记为强边缘像素;如果一个像素的梯度值小于低阈值,则将其标记为非边缘像素;如果一个像素的梯度值介于两个阈值之间,则将其标记为弱边缘像素。
边缘连接:将强边缘像素与其周围的弱边缘像素连接起来形成完整的边缘。
Canny边缘检测具有较高的准确率和稳定性,能够检测到细节和噪声较少的边缘。
// Canny边缘检测 Canny(gray, edges, 50, 150, 3);
依次传入的参数代表传入的灰度图像、输出图像、低阈值、高阈值和Sobel算子大小。