利用canny邊緣檢測,我們可以很好地得到哦一個圖像的輪廓,下面是基於C++的,這是我們通過這段代碼得到的結果:

#include "pch.h" #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp>
using namespace cv; int main() { // 讀入一張圖片
Mat srcimage = imread("C://Users//lenovo//Desktop//456.jpg"); namedWindow("青春", 0);//創建窗口
cvResizeWindow("青春", 333, 500); //創建一個333*500大小的窗口
imshow("青春", srcimage);//在創建的窗口中顯示圖片
Mat dstimage,edge,grayimage; dstimage.create(srcimage.size(), srcimage.type()); cvtColor(srcimage, grayimage, CV_BGR2GRAY); cvtColor(srcimage, grayimage, COLOR_BGR2GRAY); blur(grayimage,edge,Size(17,17)); Canny(edge, edge, 3, 9, 3); // 等待6000 ms后窗口自動關閉
namedWindow("canny邊緣檢測", 0);//創建窗口
cvResizeWindow("canny邊緣檢測", 333, 500); //創建一個333*500大小的窗口
imshow("canny邊緣檢測", edge);//在創建的窗口中顯示圖片
waitKey(0);//等待按鍵按下
return 0;
演示例程:
