[英]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.