Package To Convert Json Files To PascalVOC XML files
Project description
JsonToPascalVoc
Json2PascalVoc is a Python library for converting some special Json strings to PascalVOC format XML files.
Installation
Use the package manager pip to install Json2PascalVoc. Or download package from GitHub
pip install Json2PascalVoc
Usage
from Json2PascalVoc import Converter
myConverter = Converter()
# returns a Converter Object
myConverter.convertJsonToPascal("data.json")
# Converts Json to PascalVOC XML and saves the XML file to the related file path
An example data.json file is :
{
"data":[
{
"annotation":{
"folder":"class1",
"filename":"_ADC0362.jpg",
"path":"~/Desktop/Dev/data/foo/train/class1/_ADC0362.jpg",
"source":{
"database":"Unknown"
},
"size":{
"width":1500,
"height":1500,
"depth":3
},
"segmented":0,
"object":[
{
"name":"class1",
"pose":"Unspecified",
"truncated":0,
"difficult":0,
"bndbox":{
"xmin":579,
"ymin":584,
"xmax":924,
"ymax":1120
}
},
{
"name":"class1",
"pose":"Unspecified",
"truncated":0,
"difficult":0,
"bndbox":{
"xmin":120,
"ymin":400,
"xmax":1150,
"ymax":800
}
}
]
}
},
{
"annotation":{
"folder":"class1",
"filename":"_ADC0373.jpg",
"path":"~/Desktop/Dev/data/foo/train/class1/_ADC0373.jpg",
"source":{
"database":"Unknown"
},
"size":{
"width":1500,
"height":1500,
"depth":3
},
"segmented":0,
"object":[
{
"name":"class1",
"pose":"Unspecified",
"truncated":0,
"difficult":0,
"bndbox":{
"xmin":487,
"ymin":558,
"xmax":798,
"ymax":942
}
}
]
}
}
]
}
Notes:
1- "data" array of Json can contain multiple "annotation" objects for different images.
2- "annotation" objects can contain multiple "object" attributes for multi object detecting in a single image.
3- PascalVOC formatted XML files are saved to the path that is given in "annotation.path" for each image/"annotation"
The output XML for an image is like :
<?xml version="1.0" encoding="UTF-8"?>
<annotation>
<folder name="folder">class1</folder>
<filename name="filename">_ADC0362.jpg</filename>
<path name="path">~/Desktop/Dev/data/foo/train/class1/_ADC0362.jpg</path>
<source>
<database name="database">Unknown</database>
</source>
<size>
<width name="width">1500</width>
<height name="height">1500</height>
<depth name="depth">3</depth>
</size>
<segmented name="segmented">0</segmented>
<object>
<name name="name">class1</name>
<pose name="pose">Unspecified</pose>
<truncated name="truncated">0</truncated>
<difficult name="difficult">0</difficult>
<bndbox>
<xmin name="xmin">579</xmin>
<ymin name="ymin">584</ymin>
<xmax name="xmax">924</xmax>
<ymax name="ymax">1120</ymax>
</bndbox>
</object>
<object>
<name name="name">class1</name>
<pose name="pose">Unspecified</pose>
<truncated name="truncated">0</truncated>
<difficult name="difficult">0</difficult>
<bndbox>
<xmin name="xmin">120</xmin>
<ymin name="ymin">400</ymin>
<xmax name="xmax">1150</xmax>
<ymax name="ymax">800</ymax>
</bndbox>
</object>
</annotation>
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for Json2PascalVoc-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d5ccb635b7e1aa9f8306cd869edd1309ae381c52e96838886c4b6c50950ef61 |
|
MD5 | e8dff0db91c5cff42b36ec3c8f91d7e8 |
|
BLAKE2b-256 | 302e03536239d6144fda75a4e866f13f1555f5dc41087f4694b57f9abd5d82f3 |