Canny边缘检测步骤
- 图像I分别与Sobel_x和Sobel_y做卷积,利用平方和开方求得到边缘强度。
- 计算梯度方向
- 对每个位置进行非极大值抑制处理。
- 再对结果进行双阈值的滞后阈值处理。
函数原型
void Canny(InputArray img,
OutputArray edges,
double threshhold1,
double threshold2,
int apertureSize=3,
bool L2gradient=false
)
//L2gradient。true表示计算边缘强度时使用平方和开方的方式吗,false代表使用的是绝对值和的方式。
双阈值的滞后阈值处理
它使用两个阈值,高阈值(upper thresh)和低阈值(lower thresh).。
- 边缘强度大于高阈值的作为确定边缘点
- 边缘强度低于低阈值的点立即被剔除。
- 边缘强度介于低阈值和高阈值之间的点,按照以下原则处理:只有这些点能按照某一路径与确定边缘点相连时才可以作为边缘点被接受。