OpenCV算子,pointPolygonTest检测点是否在轮廓内

opencv函数


pointPolygonTest:


C++: double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist)


用于测试一个点是否在多边形中

当measureDist设置为true时,返回实际距离值。若返回值为正,表示点在多边形内部,返回值为负,表示在多边形外部,返回值为0,表示在多边形上。

当measureDist设置为false时,返回 -1、0、1三个固定值。若返回值为+1,表示点在多边形内部,返回值为-1,表示在多边形外部,返回值为0,表示在多边形上。

// 窗口坐标转换图片坐标
Point2f srcPt;
srcPt.x = pt.x()*srcSize.width()*1.0 / lbSize.width();
srcPt.y = pt.y()*srcSize.height()*1.0 / lbSize.height();
for (int i = 0; i < pointsresult5.size(); i++)
{
    if (pointPolygonTest(pointsresult5[i], srcPt, false) == 1)
    {
    strRate = QString::number(contourRate[i] * 100)+"%";
    break;
    }   
}



上一篇:专家:大数据等新技术助力信息融合


下一篇:【Android 学习】之ListView使用大全