opencv 輪廓的外圍多邊形提取或者 刪除最小最大輪廓


std::vector<cv::Point>  resultpoly;
cv::approxPolyDP(contours[0], resultpoly,4, true);//輪廓contours[0] ,resultpoly多邊形的點集
cv::polylines(src, resultpoly, true, 150, 1);//畫多邊形的外輪廓
cv::imshow("detected polyLines", src);//顯示多邊形的外輪廓

//相關鏈接https://www.cnblogs.com/donaldlee2008/p/5230032.html
// 移除過小或過大的輪廓  
void getSizeContours(vector<vector<Point>> &contours)  
{  
    int cmin = 100;   // 最小輪廓長度  
    int cmax = 1000;   // 最大輪廓長度  
    vector<vector<Point>>::iterator itc = contours.begin();  
    while(itc != contours.end())  
    {  
        if((itc->size()) < cmin || (itc->size()) > cmax)  
        {  
            itc = contours.erase(itc);  
        }  
        else ++ itc;  
    }  
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM