一つの点が輪郭内にあるかどうかを判断する関数pointPolygonTest()の使い方

1219 ワード

OpenCV関数pointPolygonTest():
C++: double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist)
1つの点が輪郭にあるか否かを判断するために用いられるmeasureDistがtrueに設定されている場合、戻り値が正であれば、点が輪郭内部にあることを示し、戻り値が負であり、輪郭外部にあることを示し、戻り値が0であり、輪郭にあることを示す.measureDistがfalseに設定されている場合、戻り値が+1の場合、表示点は輪郭内部、戻り値は-1、輪郭外部、戻り値は0、輪郭上に表示されます.例:
……
///     
std::vector<std::vector<:point/> > contours; 
cv::Mat src; //src     

cv::findContours( src, contours, CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE,Point(0,0)); 

//  p1(x,y)      
cv::Point p1(x,y);
if (pointPolygonTest(Contours[j],cv::Point(x1,y1),false) == 1)
{
    cout<"    "<