0

手のひらの中心を見つけたい。まず、等高線を見つけて、最大面積等高線を選択しました。そして、pointPolygonTest を使用しました。私のコードと結果の画像を以下に示しますが、pointPolygonTest を使用してもポイントが見つかりませんでした。何が問題ですか?

double dist, maxdist = -1;
    Point center;
    for(int i = 0; i< drawing.cols; i += 10) {
        for(int j = 0; j< drawing.rows; j += 10) {

            dist = pointPolygonTest(contours[maxAreaIndex], Point(i,j),true);
            cout << "   dist " << dist << endl;
            if(dist > maxdist)
            {
                maxdist = dist;
                center = cv::Point(i,j);
            }
        }
    }
    cout << "maxdist = " << maxdist << endl;
    circle(drawing, center, maxdist, cv::Scalar(220,75,20),1,CV_AA);
    /// Show in a window
    namedWindow( "Contours", CV_WINDOW_AUTOSIZE );
    imshow( "Contours", drawing );

ここに画像の説明を入力

4

0 に答える 0