20 - Canny边缘检测

Erin ·
更新时间:2024-09-21
· 609 次阅读

20 - Canny边缘检测

代码 及 理解注释:
 

#include; #include; using namespace cv; using namespace std; Mat source1,source1_Gray,change1; int tl_value = 50; int max_value = 255; const char* OUTPUT_TITLE = "Canny Result"; void Canny_Demo(int,void*); int main(int argc, char* argv) { // 20 - Canny边缘检测 source1 = imread("F:\\OpenCV-Test\\TestPicture\\SourcePicture1\\1.PNG"); if (!source1.data) { printf("can not load image ... \n"); return -1; } imshow("source1", source1); imshow(OUTPUT_TITLE,source1); createTrackbar("Threshold Value:",OUTPUT_TITLE,&tl_value,max_value,Canny_Demo); Canny_Demo(0,0); waitKey(0); return 0; } void Canny_Demo(int, void*) { cvtColor(source1, source1_Gray, 6); blur(source1_Gray, source1_Gray,Size(3,3),Point(-1,-1),BORDER_DEFAULT); Canny(source1_Gray,change1,tl_value,tl_value*2,3,false); // Canny边缘检测 //(输入图像,输出图像,阈值1,阈值2,卷积核,是否采用更精确方式计算图像梯度) // 阈值1:低于1的像素点不是边缘 // 阈值2:高于2的像素点不是边缘 // 在 阈值1和阈值2之间 是边缘 imshow(OUTPUT_TITLE,change1); }

代码演示效果:


作者:奥瑞起源



canny边缘检测

需要 登录 后方可回复, 如果你还没有账号请 注册新账号