OpenCV函数pointPolygonTest()的行为与我的想法不同

时间:2016-03-23 10:19:34

标签: c++ opencv

请检查我的代码,它不能正常工作。在构建和调试会话期间都不会发生错误。我想在每个轮廓内用WHITE标记所有像素。轮廓是正确的,因为我已经分别绘制它们。但最终的结果是不对的。

//Draw the Sketeches
    Mat sketches(detected.size(), CV_8UC1, Scalar(0));
    for (int j = ptop; j <= pbottom; ++j) {
        for (int i = pleft; i <= pright; ++i) {
            if (pointPolygonTest(contours[firstc], Point(j, i), false) >= 0) {
                sketches.at<uchar> (i, j)= 255;
            }
            if (pointPolygonTest(contours[secondc], Point(j, i), false) >= 0) {
                sketches.at<uchar> (i, j)= 255;
            }
        }
    }

变量&#34; Mat检测到&#34;是另一种用于手部检测的图像。我从它中提取了两个轮廓作为轮廓[firstc]和轮廓[secondc]。而且我还缩小了图像中的手部分(ptop:pbottom)和col(pleft,pright),以及两个&#34; for&#34;循环也正确。那究竟问题出在哪里? Here is my result! Something goes wrong with it!

enter image description here

0 个答案:

没有答案