有一个存储着矩形框四个角坐标的数组cars,怎么将数组cars中的矩形画出来,Python语言
时间: 2024-05-29 17:08:46 浏览: 7
可以使用matplotlib库来实现矩形的绘制。示例代码如下:
import matplotlib.pyplot as plt
# cars数组中每个元素都是一个四元组,表示矩形的四个角坐标
for i in range(len(cars)):
x = [cars[i][0], cars[i][0], cars[i][2], cars[i][2], cars[i][0]]
y = [cars[i][1], cars[i][3], cars[i][3], cars[i][1], cars[i][1]]
plt.plot(x, y)
plt.show()
这样就可以将cars数组中的所有矩形画出来了。
相关问题
python获取灰度图中多个红色的矩形框四角坐标
要获取灰度图中多个红色矩形框的四角坐标,可以使用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) # 输出矩形四角坐标列表
```
注意:以上代码仅适用于红色区域为纯色的情况。如果图像中存在多个颜色的矩形框,则需要对每个矩形框的颜色进行判断。
python获取灰度图中多个红色的矩形框左上角坐标和矩形框的高度和宽度
要获取灰度图中多个红色矩形框的左上角坐标和矩形框的高度和宽度,可以使用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) # 输出矩形列表
```
注意:以上代码仅适用于红色区域为纯色的情况。如果图像中存在多个颜色的矩形框,则需要对每个矩形框的颜色进行判断。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)