簡體   English   中英

OpenCV測量矩形圖像大小

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

BoundingRect幾乎可以滿足我的要求。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM