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