python获取灰度图中多个红色的矩形框四角坐标
时间: 2023-10-24 07:04:36 浏览: 155
图片灰度矩阵
要获取灰度图中多个红色矩形框的四角坐标,可以使用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_corners_list = []
for rect_contour in rect_contours:
x, y, w, h = cv2.boundingRect(rect_contour)
rect_corners = [(x, y), (x+w, y), (x+w, y+h), (x, y+h)]
rect_corners_list.append(rect_corners)
print(rect_corners_list) # 输出矩形四角坐标列表
```
注意:以上代码仅适用于红色区域为纯色的情况。如果图像中存在多个颜色的矩形框,则需要对每个矩形框的颜色进行判断。
阅读全文