Python测量外接矩形的边长

Python测量外接矩形的边长

作者:Rhett Bai发布时间:2026-03-28 21:57阅读时长:9 分钟阅读次数:8
常见问答
Q
如何使用Python获取图像中外接矩形的宽度和高度?

我有一张图像,想利用Python测量图像中某个物体的外接矩形的具体宽度和高度,有哪些常用的方法?

A

使用OpenCV测量外接矩形的边长

在Python中,可以借助OpenCV库的findContours函数来检测物体轮廓,接着使用boundingRect函数获取外接矩形的信息。boundingRect会返回矩形的左上角坐标以及宽度和高度,从而能轻松得到边长。

Q
怎样准确定位并量取复杂形状的外接矩形边长?

对于不规则或凸凹不平的形状,如何用Python准确定位其最小外接矩形,并测量对应的边长?

A

利用最小面积外接矩形算法获取形状边长

使用OpenCV的minAreaRect函数可以找到形状的最小面积外接矩形,该函数返回旋转矩形的中心点、尺寸和旋转角度。尺寸中的宽度和高度即为该矩形的边长,通过这种方式能更精确测量复杂形状的外接矩形边长。

Q
有没有Python示例代码演示如何测量矩形边长?

我希望看到一段示范代码,说明如何用Python和OpenCV结合测量图像中外接矩形的宽度和高度。

A

Python测量外接矩形的示例代码

示例代码流程通常包括读取图像、转换为灰度并进行二值化处理,检测轮廓,然后调用cv2.boundingRect或cv2.minAreaRect获取矩形数据。下面是一个简单的代码框架:

import cv2

img = cv2.imread('image.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

for cnt in contours:
x, y, w, h = cv2.boundingRect(cnt)
print(f'矩形边长:宽={w}, 高={h}')

上述示例可快速测量出外接矩形的边长。