如果你想使用opencv区分边界的话,可以使用findContours,但是在确认边界后,
你又想知道边界里面或者外面是什么,你可以使用pointPolygonTest方法来判断。
如下例子:
cv::Point2f findPointInContour(cv::Rect& rect, std::vector< cv::Point > contour)
{
cv::Point2f onTheEdge1;
int where = 0;
for (int i = rect.x; i < rect.x + rect.width; i++) {
for (int j = rect.y; j < rect.y + rect.height; j++) {
where = (int) (cv::pointPolygonTest(contour, cv::Point2f(i, j), false));
//cout << "x = " << i << " y = " << j << "distance " << where << endl;
if (where > 0) { //inside
return cv::Point2f(i, j);
} else if (where == 0) { //on the edge
onTheEdge1 = cv::Point2f(i, j);
}
}
}
return onTheEdge1;
}