1、Canny边缘检测步骤
①高斯去噪
②Sobel计算梯度幅值和方向
③非极大值抑制
④滞后阈值,其中的高阈值和低阈值:
- 若某一像素值高于高阈值,则保留为边界。
- 若某一像素值低于低阈值,则过滤。
- 若在两者之间,该像素值仅仅在连接到一个高于高阈值的像素才被保留。
2、测试代码
原型
void Canny( InputArray image, // 输入图像,必须为单通道8位图
OutputArray edges,// 输出图像
double threshold1, double threshold2,// 低阈值和高阈值
int apertureSize = 3,// 核大小
bool L2gradient = false );// 计算图像梯度幅值的标识
void test10() {
Mat src = imread("D:/line2.png");
imshow("src", src);
Mat gray,dst;
cvtColor(src, gray, CV_BGR2GRAY);
imshow("gray", gray);
Canny(gray,dst,100,200);
imshow("dst", dst);
}
src
gray
dst
网友评论