FloodFillなどの処理により、マスク画像を取得した後に、大まかな領域情報を得る手法の一つとして、cv::findContoursで輪郭線を検出し、さらにcv::minAreaRectで全体を囲んだ四角形(傾きあり)を使用することがある。
ただし、cv::minAreaRectの戻り値が、cv::RotatedRectであるため、cv::rectangleでは、描画できない。
そのため、cv::RotatedRectから、4点を取り出し、自分で4つの線を描画する必要がある
cv::RotatedRect rRect = cv::minAreaRect(polygon);
cv::Point2f vertices[4];
rRect.points(vertices);
for (int i = 0; i < 4; i++)
line(image, vertices[i], vertices[(i+1)%4], cv::Scalar(0,255,0));
説明はここ
0 件のコメント:
コメントを投稿