我有一个文件夹,里面有相同名称的json和jpg图片,json是用label标注的,我想以带有标注框的方式查看图片
时间: 2024-03-15 13:45:55 浏览: 53
read_json_读labelme生成json文件的标注框_
5星 · 资源好评率100%
您可以使用Python编写一个脚本来实现这个功能。您需要安装Python JSON库和Pillow库。以下是一个可能的实现:
``` python
import os
import json
from PIL import Image, ImageDraw
dir_path = "/path/to/folder" # 替换为您的文件夹路径
for filename in os.listdir(dir_path):
if filename.endswith(".json"):
with open(os.path.join(dir_path, filename), "r") as f:
data = json.load(f)
if "label" in data and data["label"] == "bei":
img_filename = filename[:-5] + ".jpg" # 假设图片和json文件名相同,只是后缀不同
img_path = os.path.join(dir_path, img_filename)
if os.path.exists(img_path):
img = Image.open(img_path)
draw = ImageDraw.Draw(img)
for obj in data["objects"]:
if obj["classTitle"] == "bei":
x, y, w, h = obj["points"]["exterior"][0] + obj["points"]["exterior"][1]
draw.rectangle((x, y, w, h), outline="red")
img.show()
```
这个脚本遍历文件夹中的所有文件,找到以`.json`结尾的文件,并读取其中的JSON数据。如果`label`字段存在且等于`bei`,则从文件名中构建出对应的图像文件名,并检查是否存在该文件。如果存在,则使用Pillow库打开图像,并使用`ImageDraw.Draw`创建一个绘图对象。然后遍历JSON数据中的所有对象,找到`classTitle`为`bei`的对象,并根据`points`字段中的坐标绘制一个红色矩形框。最后显示图像。
阅读全文