图像处理---《Canny 边缘检测》
图像处理---《Canny 边缘检测》
很想系统的把图像处理之边缘检测部分详细的过一遍,对比一个各个算子的优良性能。时间紧,精力有限,现在只能走哪补哪,随手记。
有几个简单的场景,有需要,想通过图像的边缘特征区分开。解决问题的方法有很多,知识储备有限,最先想到Canny、Sobel算子,
其实对这两个也不熟,现琢磨现用,希望对解决问题有帮助。这里记一下,Canny 边缘检测的效果。
/* 作者:WP @20190620 功能:检测车道线---Canny算法 说明:先利用轨迹条选一个较好的lowThreshold值,Canny( detected_edges, detected_edges, lowThreshold, lowThreshold*ratio, kernel_size ); 参考:《Canny 边缘检测》http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html */ //-----------------------------------【头文件包含部分】----------------------------------------------------------------------- // 描述:包含程序所依赖的头文件 //---------------------------------------------------------------------------------------------------------------------------- #include <opencv2/opencv.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> using namespace std; using namespace cv; //Canny边缘检测算法 int main() { Mat img = imread("D:\\003_test_img\\test002_VS\\013_7.png"); imshow("原始图", img); Mat DstPic, edge, grayImage; //创建与src同类型和同大小的矩阵 DstPic.create(img.size(), img.type()); //将原始图转化为灰度图 cvtColor(img, grayImage, COLOR_BGR2GRAY); //先使用3*3内核来降噪 blur(grayImage, edge, Size(3, 3)); //运行canny算子 //Canny(edge, edge, 3, 3*3, 3); Canny(edge, edge, 160, 160*3, 3); imshow("边缘提取效果", edge); waitKey(0); }


【. . . . . .本博客仅作个人生活、工作、学习等的日常记录。说明: (1) 内容有参考其他博主、网页等,有因“懒”直接粘贴来,会备注出处。若遇雷同,或忘备注,并无故意抄袭之意,请诸“原主”谅解,很感谢您的辛勤"笔记"可供本人参考学习。 (2) 如遇同行,有参考学习者,因个人学识有限,不保证所写内容完全正确。您对本博文有任何的意见或建议,欢迎留言,感谢指正。 (3) 若您认为本主的全博客还不错,可以点击关注,便于互相学习。 (4) 感谢您的阅读,希望对您有一定的帮助。欢迎转载或分享,但请注明出处,谢谢。. . . . . .】
【作者: Carole0904 ; 出处: https://www.cnblogs.com/carle-09/ 】
浙公网安备 33010602011771号