
Python测量外接矩形的边长
我有一张图像,想利用Python测量图像中某个物体的外接矩形的具体宽度和高度,有哪些常用的方法?
使用OpenCV测量外接矩形的边长
在Python中,可以借助OpenCV库的findContours函数来检测物体轮廓,接着使用boundingRect函数获取外接矩形的信息。boundingRect会返回矩形的左上角坐标以及宽度和高度,从而能轻松得到边长。
对于不规则或凸凹不平的形状,如何用Python准确定位其最小外接矩形,并测量对应的边长?
利用最小面积外接矩形算法获取形状边长
使用OpenCV的minAreaRect函数可以找到形状的最小面积外接矩形,该函数返回旋转矩形的中心点、尺寸和旋转角度。尺寸中的宽度和高度即为该矩形的边长,通过这种方式能更精确测量复杂形状的外接矩形边长。
我希望看到一段示范代码,说明如何用Python和OpenCV结合测量图像中外接矩形的宽度和高度。
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}')
上述示例可快速测量出外接矩形的边长。