一、Canny边缘检测
void Canny( InputArray image, OutputArray edges,
double threshold1, double threshold2,
int apertureSize = 3, bool L2gradient = false );
image | 输入图像 |
edges | 输出的边缘图 |
threshold1 | 第一个滞后性阈值 |
threshold2 | 第二个滞后性阈值 |
apertureSize | 表示应用Sobel算子的孔径大小,默认值3 |
L2gradient | 计算图像梯度幅值的标识,默认值false |
推荐高低阈值比在2:1到3:1之间。
示例代码:
#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
using namespace cv;
int main()
{
Mat dst1,dst2,dst3;
Mat src = imread("F:/3.jpg");
dst1.create(src.size(), src.type());
cvtColor(src, dst2, COLOR_BGR2GRAY);
blur(dst2, dst3, Size(3, 3));
Canny(dst3, dst3, 3, 9, 3);
dst1=Scalar::all(0);
src.copyTo(dst1, dst3);
imshow("src", src);
imshow("result", dst1);
waitKey(0);
return 0;
}