好吧,很抱歉再次问几乎相同的问题,但我已经尝试了很多方法,但我仍然无法做我想做的事情,我什至不确定单独使用 opencv 是否可行。
我旋转了一个图像,我想将其复制到另一个图像中。问题是,无论我以何种方式裁剪这个旋转图像,它总是复制到第二个图像内,并在其周围有一个非旋转的正方形。如下图所示。(忘记白色部分就可以了)。我只是想去掉条纹部分。
我相信我的问题出在我将图像复制到的 ROI 上,因为该 ROI 是一个矩形而不是一个旋转矩形。正如下面的代码所示。
cv::Rect roi(Pt1.x, Pt1.y, ImageAd.cols, ImageAd.rows);
ImageAd.copyTo(ImageABC(roi));
但我无法像下面的代码那样使用rotatedRect进行复制......
cv::RotatedRect roi(cent, sizeroi, angled);
ImageAd.copyTo(ImageABC(roi));
那么有没有办法在opencv中做我想做的事情呢?
谢谢!
使用下面的方法和蒙版后,我得到了这张图像,如图所示,该图像被 roi 截断,在该图像中我用来表示我想要复制旋转图像的图像中的位置。基本上现在我已经屏蔽了图像,如何选择将此屏蔽图像放入第二个图像中的位置。目前我使用一个矩形,但这不起作用,因为我的图像不再是一个矩形,而是一个旋转的矩形。查看代码,看看我现在是如何错误地执行此操作的(它会被切断,如果我使矩形变大,则会引发异常)。
cv::Rect roi(Pt1.x, Pt1.y, creditcardimg.cols, creditcardimg.rows);
creditcardimg.copyTo(imagetocopyto(roi),mask);