ランダムな輪郭が与えられた場合、与えられた入力点が輪郭内にあるかどうかをどのように判断できますか? 簡単な解決策があれば申し訳ありませんが、私はそれを理解することができません。
私が持っていたアイデアの1つは、直線の方程式を使用し、点を接続して、それが大きいか小さいかなどを確認することでした.しかし、それは線の位置に依存するため、どこにも行きません.
ランダムな輪郭が与えられた場合、与えられた入力点が輪郭内にあるかどうかをどのように判断できますか? 簡単な解決策があれば申し訳ありませんが、私はそれを理解することができません。
私が持っていたアイデアの1つは、直線の方程式を使用し、点を接続して、それが大きいか小さいかなどを確認することでした.しかし、それは線の位置に依存するため、どこにも行きません.
ここでOpenCVを使用してこの問題の完全な解決策を見つけることができます
/// Get the contours
vector<vector<Point> > contours; vector<Vec4i> hierarchy;
Mat src_copy = src.clone();
findContours( src_copy, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE);
/// Calculate the distances to the contour
Mat raw_dist( src.size(), CV_32FC1 );
for( int j = 0; j < src.rows; j++ )
{ for( int i = 0; i < src.cols; i++ )
{ raw_dist.at<float>(j,i) = pointPolygonTest( contours[0], Point2f(i,j), true ); }
}