如果你想通过opencv的canny边缘检测将QQ图标的轮廓提取出来,那你阅读下面的代码即可:
#include <iostream>
#include"opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat img_rgb, img_gry,img_can;
namedWindow("img_gry", WINDOW_AUTOSIZE);
namedWindow("img_can", WINDOW_AUTOSIZE);
//图片读取
Mat img = imread(argv[1], -1);//-1表示会按照原图显示,0表示灰度图,1表示彩色图,-1会保留alpha通道(透明度)
if (img.empty())
return -1;//错误处理
cvtColor(img, img_gry, COLOR_BGR2GRAY);
imshow("img_gry", img);
Canny(img_gry, img_can, 21000, 21000,7,true);//第一个阈值用于边缘连接,第二个阈值用于边缘检测,5表示sobel核大小,true表示使用使用 L2 范数
imshow("img_can", img_can);
waitKey(0);
destroyAllWindows();
return 0;
}
关键代码解释