python获取灰度图中多个红色的矩形框左上角坐标和矩形框的高度和宽度
时间: 2024-03-25 20:37:13 浏览: 185
获取图形的高和宽
要获取灰度图中多个红色矩形框的左上角坐标和矩形框的高度和宽度,可以使用OpenCV库中的cv2.findContours函数找到所有轮廓,然后筛选出红色矩形框的轮廓,最后使用cv2.boundingRect函数计算轮廓的外接矩形,提取出矩形的左上角坐标和高度、宽度即可。
以下是示例代码:
```python
import cv2
import numpy as np
# 加载灰度图
img_gray = cv2.imread('gray_image.png', cv2.IMREAD_GRAYSCALE)
# 转换为BGR图像
img_bgr = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR)
# 提取红色区域
lower_red = np.array([0, 0, 255])
upper_red = np.array([0, 0, 255])
mask = cv2.inRange(img_bgr, lower_red, upper_red)
# 查找轮廓
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 筛选出红色矩形框的轮廓
rect_contours = []
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
if w > 10 and h > 10 and w / h > 0.5 and w / h < 2:
rect_contours.append(contour)
# 提取每个矩形的左上角坐标和高度、宽度
rect_list = []
for rect_contour in rect_contours:
x, y, w, h = cv2.boundingRect(rect_contour)
rect = {'x': x, 'y': y, 'w': w, 'h': h}
rect_list.append(rect)
print(rect_list) # 输出矩形列表
```
注意:以上代码仅适用于红色区域为纯色的情况。如果图像中存在多个颜色的矩形框,则需要对每个矩形框的颜色进行判断。
阅读全文