[英]OpenCV measure rectangular image size
我有一个可以在框架中找到对象并使用warpPerspective
将图像校正为正方形的应用。 在此过程中,您可以指定输出图像尺寸。 但是,我想知道如何在不损害其外观大小的情况下进行操作。 如何在不更改图像尺寸的情况下使图像的四角变形? 我不需要图像本身,我只想测量原始图像中像素的高度和宽度。
std::vector<cv::Point2f> transformedPoints;
cv::Mat M = cv::getPerspectiveTransform(points, objectCorners);
cv::perspectiveTransform(points, transformedPoints, M);
这将使图像平方,但要考虑objectCorners
坐标系。 不是原始图像平面的-0.5f到0.5f。
cv::Rect boundingRectangle = cv::boundingRect(points);
但正如文档所述
该函数计算并返回指定点集的最小垂直边界矩形。
我想要的是将矩形平方后的边界矩形,而不是不对其进行平方。
根据我对您的帖子的了解,以下内容应该会对您有所帮助。 OpenCV透视图转换示例 。
如果仍然无法帮助您找到图像的高度和宽度,请进行更新
cv::RotatedRect box = cv::minAreaRect(cv::Mat(points));
正如OpenCV网站上的minAreaRect参考所指出的
查找包含输入2D点集的最小面积的旋转矩形。
您可以调用box.size
并获取宽度和高度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.