1

ROI を使用して、画像内で見つかったポリゴンを新しい画像にコピーしたいと考えています。このポリゴンを新しい画像に正確に合わせたいと思います。これまで ROI を使用していましたが、角度が考慮されていないことに気付きました。これにより、検出したいオブジェクトを回転させるとすぐに悪い結果が得られます。さらに分析するには、このオブジェクトだけが必要です...

これが私がすることです:

while(/****/)
{
    CvSeq* approximatedContour = cvApproxPoly(currentContour,
                                              sizeof(CvContour),
                                              0,
                                              CV_POLY_APPROX_DP,
                                              8);

    etiquetteBox = cvMinAreaRect2(approximatedContour);
    CvSize2D32f sizeEtiquette = etiquetteBox.size;

    if(/****/)
    {
        CvPoint2D32f boxPoints[4];
        cvBoxPoints(etiquetteBox, boxPoints);

        cvSetImageROI(thresImg,cvRect((int)boxPoints[1].x, (int)boxPoints[1].y,
                      (int)sizeEtiquette.width,(int)sizeEtiquette.height));

        cvResize(thresImg,thresImgResized);

        /*****/
    }

角度をROIに統合する方法を知っている人はいますか? それ以外のことは可能ですか?

ありがとう!

4

1 に答える 1

3

RotatedRectからマスクを作成し、マスクを使用してイメージをコピーする必要があります。

編集

マスクの作り方:

元のイメージと同じサイズで新しいイメージを作成しますが、チャネルは 8U のみです。お好みの方法でゼロに設定してください。好みの描画関数を使用して、四角形、多角形、円など、ROI として使用したいものを描画します。DrawPoly、例えば。Figure には必ず 255 を入力してください。イメージを表示します。黒い背景に白いポリゴンが含まれている必要があります。

マスク パラメータとして使用します。

于 2012-01-31T06:42:09.580 に答える