opencv-polylines多邊形


polylines 畫多邊形 

方式一 

    cv::Mat src(600, 600, CV_8UC3, cv::Scalar(0,0,0));
    
    //創建多邊形的點
    cv::Point points[2][4];
    points[0][0] = cv::Point(100, 115);
    points[0][1] = cv::Point(255, 135);
    points[0][2] = cv::Point(140, 365);
    points[0][3] = cv::Point(100, 300);
    points[1][0] = cv::Point(300, 315);
    points[1][1] = cv::Point(555, 335);
    points[1][2] = cv::Point(340, 565);
    points[1][3] = cv::Point(300, 500);
    //ppt[]要同時添加兩個多邊形頂點數組的地址頭
    const cv::Point* pts[] = { points[0],points[1] };
    //npts[]要定義每個多邊形的定點數
    int npts[] = { 4,4 };
    cv::polylines(src, pts, npts, 2, true, cv::Scalar(255,0,0), 5, 8, 0);
    /*
    參數1:作為畫布的矩陣
    參數2:pts 折線頂點數組
    參數3:npts 折線頂點個數
    參數4:待繪制折線數
    參數5:是否是閉合折線(多邊形)
    參數6:折線的顏色
    參數7:折線粗細
    參數8:線段類型  8或4
    參數9:縮放比例(0是不縮放,4是1/4)
    */
        
    cv::namedWindow("src");
    cv::imshow("src", src);
    cv::waitKey();
    return 0;

方式二

    cv::Mat src(600, 600, CV_8UC3, cv::Scalar(0,0,0));
    
    //創建多邊形的點
    std::vector<cv::Point> pts;
    pts.push_back(cv::Point(100, 115));
    pts.push_back(cv::Point(255, 135));
    pts.push_back(cv::Point(140, 365));
    pts.push_back(cv::Point(100, 300));
        
    cv::polylines(src, pts,true, cv::Scalar(255,0,0), 5, 8, 0);
    /*
    參數1:作為畫布的矩陣
    參數2:pts 折線頂點數組
    參數3:是否是閉合折線(多邊形)
    參數4:折線的顏色
    參數5:折線粗細
    參數6:線段類型  8或4
    參數7:縮放比例(0是不縮放,4是1/4)
    */
        
    cv::namedWindow("src");
    cv::imshow("src", src);
    cv::waitKey();
    return 0;

注意:兩種方式參數2的數據類型不同

 

 

 

 


免責聲明!

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



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