解析JSON文件元素

时间:2019-09-27 15:57:11

标签: json parsing

我有一个JSON文件,其中包含有关图像中的边框(bbox)的信息(每个图像通常有多个边框)。我想解析该文件,以便我可以创建一个新文件,该文件以以下格式提取边界框的信息:

image 0.jpg bbox x1,y1,x2,y2

image 0.jpg bbox x1,y1,x2,y2

....

image 1.jpg bbox x1,y1,x,y2

....

我设法解析出有关bbox的信息,但是由于每张图片可以具有不同数量的bbox,所以我不知道如何解决将bbox分配给其特定图片然后代表每张图片+ bbox对的问题按行。

这是我到目前为止所得到的

import json

with open('D:\\Mask_RCNN\\coco_instances.json') as json_file:
    data = json.load(json_file)


result = []

for images in data['images']:
    filename = images['file_name']
    result.append(filename)
    print ("Filename = ",filename)
    filename1.append(filename)

for annotations in data['annotations']:
    bbox = annotations['bbox']
    print(bbox)
    xmin = bbox[0]
    ymin = bbox[1]
    xmax = bbox[2]
    ymax = bbox[3]
    result.extend([xmin,ymin,xmax,ymax])

结果

Filename =  00000000.jpg
Filename =  00000001.jpg
[20.5, 214.5, 8.0, 17.0]
[61.5, 174.5, 10.0, 15.0]
[151.5, 43.5, 10.0, 20.0]
[161.5, 231.5, 7.0, 10.0]
[186.5, 159.5, 8.0, 11.0]
[201.5, 115.5, 13.0, 9.0]
[15.5, 154.0, 8.5, 9.5]
[39.5, 13.5, 9.5, 15.0]
[100.5, 55.5, 7.5, 11.0]
[119.5, 217.5, 7.0, 9.0]
[166.5, 150.5, 15.0, 12.0]
[214.5, 223.5, 22.0, 11.0]

这是JSON文件JSON_file

那么我如何每行打印出图片+边框对1? 任何帮助将不胜感激。

这是一个带有2张图片的JSON文件的示例

{“ info”:{“ description”:“ none”,“ url”:“ none”,“ version”:“ 1”,“ year”:2019,“ contributor”:“ none”,“ date_created” :“” 09/27/2019“},”许可证“:[{” url“:”“,” id“:0,”名称“:”无“}],”图像“:[{”许可证“:0 ,“ file_name”:“ 00000000.jpg”,“ width”:256,“ height”:256,“ id”:0},{“ license”:0,“ file_name”:“ 00000001.jpg”,“ width” :256,“高度”:256,“ id”:1}],“注释”:[{“分段”:[[26.0,231.5,25.5,230.0,28.5,226.0,28.5,216.0,24.0,214.5,21.5 ,217.0,22.5,218.0,20.5,226.0,23.0,230.5,26.0,231.5]],“ iscrowd”:0,“ image_id”:0,“ category_id”:1,“ id”:0,“ bbox”:[ 20.5、214.5、8.0、17.0],“区域”:97.75},{“分段”:[[68.0、189.5、71.5、181.0、71.5、176.0、70.0、174.5、67.5、175.0、61.5、183.0、62.0、188.5 ,68.0,189.5]],“ iscrowd”:0,“ image_id”:0,“ category_id”:1,“ id”:1,“ bbox”:[61.5,174.5,10.0,15.0],“ area”:101.5 },{“分段”:[[159.0,63.5,161.5,61.0,161.5,58.0,159.5,57.0,158.5,49.0,156.5,48.0,155.0,43.5,153.0,43.5,151.5, 45.0,151.5,58.0,157.0,63.5,159.0,63.5]],“ iscrowd”:0,“ image_id”:0,“ category_id”:1,“ id”:2,“ bbox”:[151.5,43.5,10.0 ,20.0],“ area”:129.75},{“ segmentation”:[[165.0,241.5,168.5,239.0,168.5,234.0,164.0,231.5,161.5,233.0,161.5,236.0,165.0,241.5]],“ “:0,“ image_id”:0,“ category_id”:1,“ id”:3,“ bbox”:[161.5,231.5,7.0,10.0],“区域”:48.5},{“分段”:[[ 191.0,170.5,193.5,169.0,194.5,163.0,192.0,159.5,188.0,159.5,186.5,164.0,191.0,170.5]],“ iscrowd”:0,“ image_id”:0,“ category_id”:1,“ id “:4,“ bbox”:[186.5、159.5、8.0、11.0],“区域”:59.25},{“细分”:[[207.0、124.5、214.5、119.0、213.0、115.5、210.0、116.5、206.0, 121.5,201.5,123.0,202.0,124.5,207.0,124.5]],“ iscrowd”:0,“ image_id”:0,“ category_id”:1,“ id”:5,“ bbox”:[201.5,115.5,13.0 ,9.0],“ area”:47.5},{“ segmentation”:[[17.0,163.5,20.5,161.0,24.0,154.5,18.5,154.0,15.5,159.0,17.0,163.5]],“ iscrowd”:0, “ image_id”:1,“ category_id”:1,“ id”:6, “ bbox”:[15.5、154.0、8.5、9.5],“区域”:44.0},{“细分”:[[43.0、28.5、46.5、25.0、49.0、13.5、47.0、13.5、41.5、19.0、39.5, 23.0,39.5,27.0,43.0,28.5]],“ iscrowd”:0,“ image_id”:1,“ category_id”:1,“ id”:7,“ bbox”:[39.5,13.5,9.5,15.0], “ area”:80.5},{“ segmentation”:[[108.0,66.5,107.5,61.0,103.0,55.5,100.5,60.0,106.0,66.5,108.0,66.5]],“ iscrowd”:0,“ image_id”: 1,“ category_id”:1,“ id”:8,“ bbox”:[100.5,55.5,7.5,11.0],“ area”:42.5},{“ segmentation”:[[123.0,226.5,125.5,225.0, 126.5、222.0、124.0、217.5、119.5、220.0、120.5、225.0、123.0、226.5]],“ iscrowd”:0,“ image_id”:1,“ category_id”:1,“ id”:9,“ bbox”: [119.5,217.5,7.0,9.0],“区域”:41.0},{“分段”:[[172.0,162.5,176.5,160.0,179.5,154.0,181.5,153.0,180.0,150.5,176.0,151.5,166.5, 158.0、168.0、162.5、172.0、162.5]],“ iscrowd”:0,“ image_id”:1,“ category_id”:1,“ id”:10,“ bbox”:[166.5、150.5、15.0、12.0], “ area”:92.25},{“ segmentation”:[[224.0,234.5,231.0,230.5, 234.0、230.5、236.5、226.0、232.0、223.5、227.0、224.5、222.0、227.5、221.0、226.5、214.5、233.0、217.0、234.5、224.0、234.5]],“ iscrowd”:0,“ image_id”:1, “ category_id”:1,“ id”:11,“ bbox”:[214.5,223.5,22.0,11.0],“ area”:133.75}],“ categories”:[{“ supercategory”:“ cells”,“ id “:1,” name“:” sperm“}]}

0 个答案:

没有答案