首先,使用cv2.findContours()
函数
检测轮廓,并通过for循环遍历每个轮廓进行处理。然后使用cv2.boundingRect()
函数
计算轮廓的包围框,并获取其宽度和高度。最后,使用cv2.drawContours()
函数
将轮廓绘制出来。
示例代码如下:
imp
ort cv2
imp
ort numpy
as
np
读取图像并将其转换为灰度图像
img = cv2.imread('exam
pl
e.j
pg
')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
检测轮廓并绘制
contours, hierarchy = cv2.findContours(gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_S
IMP
LE)
for c in contours:
# 计算轮廓的包围框
x,y,w,h = cv2.boundingRect(c)
# 绘制轮廓
cv2.drawContours(img, [c], -1, (0, 255, 0), 2)
# 绘制左上角坐标
cv2.putText(img, str(w) + "x" + str(h), (x,y-5), cv2.FONT_HERSHEY_S
IMP
LEX, 0.5, (0, 255, 0), 2)
cv2.imshow('Contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()