我正在使用 mask rcnn 训练数据集。我在 labelIMG 工具 ( https://github.com/tzutalin/labelImg ) 上注释了大约 1500 张图像。长话短说,我需要从 JSON 文件中的分段列表中获取 x 和 y 坐标的值。如何使用 Python 编程访问列表?或者有没有其他方法可以在掩码 Rcnn 上使用 .xml 注释。这是从 VOC PASCAL 转换为 COCO 的数据集。Xml 被转换为 JSON 语法。代码import jsonimport codecsdata = json.load(codecs.open('example.json', 'r', 'utf-8-sig'))for i in data['annotations']: print(data['annotations'][0]) #want to output segmentation values in JSON filesJSON文件{ "images": [ { "file_name": "out538.png", "height": 720, "id": 20180000001, "width": 1280 }, { "file_name": "3 0751.jpg", "height": 720, "id": 20180000002, "width": 1280 } ], "type": "instances", "annotations": [ { "segmentation": [ [ 935, 372, 935, 554, 1195, 554, 1195, 372 ] ], "area": 47320, "iscrowd": 0, "ignore": 0, "image_id": 20180000001, "bbox": [ 935, 372, 260, 182 ], "category_id": 1, "id": 1 }, { "segmentation": [ [ 743, 317, 743, 480, 962, 480, 962, 317 ] ], "area": 35697, "iscrowd": 0, "ignore": 0, "image_id": 20180000001, "bbox": [ 743, 317, 219, 163 ], "category_id": 1, "id": 2 } ],我想要分段列表的值:例如 935、372、935、554、1195、554、1195、372 但我得到的只是错误“列表索引必须是整数或切片,而不是字典”
2 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
循环中的i变量将是一个字典,因为它是一个字典列表。为了访问该列表,您需要执行以下操作:for i in data['annotations']:annotationssegmentation
for annotation in data['annotations']:
segmentation = annotation['segmentation']
actual_segment_data = segmentation[0]
最后一行代码是必要的,因为segmentation它是列表中的列表。
这应该返回以下内容:[935, 372, 935, 554, 1195, 554, 1195, 372].
largeQ
TA贡献2039条经验 获得超7个赞
JSON 是 dict of ...dicts 的 dict 所以你需要正确的键来导航到段。
annotations[0]['segmentation']
应该给你名单
添加回答
举报
0/150
提交
取消