opencv-Canny边缘检测
2.jpg
cv::Mat imageSource = cv::imread("D:/bb/tu/2.jpg",0); cv::namedWindow("原图像"); cv::imshow("原图像",imageSource); cv::Mat image; cv::GaussianBlur(imageSource,image,cv::Size(3,3),0);//过滤 cv::Canny(image,image,50,100); //边缘检测 //第一个参数:输入图像(八位的图像) //第二个参数:输出的边缘图像 //第三个参数:下限阈值,如果像素梯度低于下限阈值,则将像素不被认为边缘 //第四个参数:上限阈值,如果像素梯度高于上限阈值,则将像素被认为是边缘(建议上限是下限的2倍或者3倍) //在阈值1和阈值2之间的像素点,若与第2步得到的边缘像素点相邻,则被认为是边缘,否则被认为不是边缘 //第五个参数:为Sobel()运算提供内核大小,默认值为3 //第六个参数:是否采用更精确的方式计算图像梯度,默认值为false cv::namedWindow("边缘图像"); cv::imshow("边缘图像",image);