2013年1月30日水曜日

OpenCVで傾いた矩形を描画する


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 件のコメント:

コメントを投稿