如何从图像中遮盖旋转的矩形?

时间:2019-08-09 07:03:15

标签: python opencv

我有一张需要遮盖其中一部分的图像。该部分是旋转的矩形。当我将左上角和右下角的参数传递给函数cv.rectangle()时,它不会形成旋转的矩形,而是会绘制没有倾斜的矩形。但是,我想在图像中遮盖旋转的矩形,并且具有矩形的所有四个坐标。有什么办法吗?谢谢。任何帮助表示赞赏。我在python中使用OpenCV。

1 个答案:

答案 0 :(得分:0)

要绘制旋转的矩形,请将四个角提取到轮廓中,然后使用cv::drawContours

cv::RotatedRect rr(cv::Point(x, y), cv::Size(w, h), angle);
cv::Point2f pts[4];
rr.points(pts);
std::vector<std::vector<cv::Point>> contours;
contours.push_back(std::vector<cv::Point>());
for(int i = 0; i < 4; i++) contours[0].push_back(pts[i]);
cv::drawContours(image, contours, 0, cv::Scalar::all(255), -1);

哎呀,那是C ++ ...但是将代码转码到python应该很简单:) this tutorial的第7节满足您的需求。