Canny提取图像轮廓
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <imgproc/imgproc.hpp> using namespace std; using namespace cv; int main() { Mat image = imread("../../sources/goal_3.png", 1); namedWindow("image"); imshow("image", image); Mat contours; Canny(image, //灰度图 contours, //输出轮廓 125, //低阈值 350); //高阈值 //因为正常情况下轮廓是用非零像素表示 我们反转黑白值 Mat contoursInv; //反转后的图像 threshold(contours, contoursInv, 128, //低于该值的像素 255, //将变成255 THRESH_BINARY_INV); namedWindow("contoursInv"); imshow("contoursInv", contoursInv); waitKey(0); return 0; }
效果截图: