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);

        /*****/
    }

有谁知道如何将角度整合到投资回报率中?可以不做吗?

谢谢!

4

1 回答 1

3

您必须从您的 中制作一个蒙版RotatedRect,并使用蒙版复制您的图像。

编辑

制作面膜的方法:

创建一个与原始大小相同的新图像,但只有一个通道 8U。使用您喜欢的方法将其设置为零。使用您喜欢的绘图功能绘制矩形、多边形、圆形或任何您想用作 ROI 的东西。DrawPoly,例如。确保用 255 填充图形。显示图像。它应该在黑色背景上包含一个白色多边形。

将其用作掩码参数。

于 2012-01-31T06:42:09.580 回答