python + opencv实现多json 打标文件回显多张图片
时间: 2024-03-05 16:54:54 浏览: 106
要实现多个 JSON 打标文件回显多张图片,可以使用以下步骤:
1. 使用 Python 的 json 库读取 JSON 打标文件,并将其转换为 Python 对象。
2. 使用 OpenCV 库读取图片文件。
3. 使用转换后的打标信息,在图片上绘制标注框、标注点等。
4. 显示处理后的图片。
下面是一个简单的示例代码,可以实现读取单个 JSON 打标文件并在一张图片上绘制标注框:
```python
import cv2
import json
# 读取 JSON 打标文件
with open('labels.json', 'r') as f:
labels = json.load(f)
# 读取图片文件
img = cv2.imread('image.jpg')
# 绘制标注框
for label in labels:
x1, y1, x2, y2 = label['bbox']
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
# 显示处理后的图片
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
如果有多个图片和对应的 JSON 打标文件,可以使用一个循环来处理它们,例如:
```python
import cv2
import json
# 读取所有图片和对应的打标文件
data = [
('image1.jpg', 'labels1.json'),
('image2.jpg', 'labels2.json'),
('image3.jpg', 'labels3.json')
]
# 处理每个图片和打标文件
for image_file, label_file in data:
# 读取 JSON 打标文件
with open(label_file, 'r') as f:
labels = json.load(f)
# 读取图片文件
img = cv2.imread(image_file)
# 绘制标注框
for label in labels:
x1, y1, x2, y2 = label['bbox']
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
# 显示处理后的图片
cv2.imshow(image_file, img)
# 等待用户按下任意键退出程序
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个示例代码可以读取多个图片和对应的 JSON 打标文件,并在每个图片上绘制标注框,然后显示它们。
阅读全文