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;
}

效果截图:

              

 

posted @ 2018-03-19 17:50  茶飘香~  阅读(605)  评论(0编辑  收藏  举报