Skip to content
Snippets Groups Projects
Commit d4e3ba48 authored by Edward Alexander Jaya's avatar Edward Alexander Jaya
Browse files

Add PASCAL per image

parent 87e96f1b
2 merge requests!40Release First Version,!21Add dockerize
Pipeline #24505 passed with stage
in 42 seconds
...@@ -43,8 +43,9 @@ ...@@ -43,8 +43,9 @@
<script> <script>
import Convert from 'xml-js' import Convert from 'xml-js'
import cocoMethods from '~/mixins/outputs/cocoMethods' import cocoMethods from '~/mixins/outputs/cocoMethods'
import pascalMethods from '~/mixins/outputs/pascalMethods'
export default { export default {
mixins: [cocoMethods], mixins: [cocoMethods, pascalMethods],
data () { data () {
return { return {
type: '', type: '',
...@@ -69,10 +70,12 @@ export default { ...@@ -69,10 +70,12 @@ export default {
this.standard = this.$route.query.standard this.standard = this.$route.query.standard
this.dataset = this.$route.query.dataset this.dataset = this.$route.query.dataset
this.id = this.$route.query.id this.id = this.$route.query.id
this.json = await this.getCOCOJSONPerImage()
if(this.type === 'xml'){ if (this.type === 'xml') {
this.xml = this.convertToXML() this.json = await this.getPascalXMLPerImage()
this.Format() this.format()
} else {
this.json = await this.getCOCOJSONPerImage()
} }
}, },
methods:{ methods:{
...@@ -81,7 +84,7 @@ export default { ...@@ -81,7 +84,7 @@ export default {
var licensesArr = this.getLicensesArr() var licensesArr = this.getLicensesArr()
await this.assignImagesObj(this.id) await this.assignImagesObj(this.id)
var categoriesAndAnnotations = await this.getCategoriesAndAnnotationsArrPerImage() var categoriesAndAnnotations = await this.getCategoriesAndAnnotationsArrPerImage()
var COCOJSON = { var COCOJSON = {
info: infoObj, info: infoObj,
...@@ -101,75 +104,71 @@ export default { ...@@ -101,75 +104,71 @@ export default {
annotations: annotationsArr annotations: annotationsArr
} }
}, },
async getPascalXMLPerImage () {
this.pascalJSON = {}
var newPascalJSON = {"annotation": []}
var allImages = await this.getAllImages()
if (allImages) {
var label = await this.getLabelByImageID(this.id)
await this.setImagesAttr(allImages)
await this.getObjectsAttr(label)
for (var key in this.pascalJSON) {
newPascalJSON["annotation"].push(this.pascalJSON[key])
}
return newPascalJSON
}
},
async setImagesAttr (allImages) {
for (var imageIdx in allImages) {
var image = allImages[imageIdx]
if (image.ImageID === this.id) {
await this.setSingleImageAttr(image, this.dataset)
}
}
},
closeOutputViewer() { closeOutputViewer() {
if(this.type === 'json'){ if (this.type === 'json'){
this.$router.push({path: '/main/coco', query:{ dataset: this.dataset }}) this.$router.push({path: '/main/coco', query:{ dataset: this.dataset }})
}else{ } else {
this.$router.push({path: '/main/pascal', query:{ dataset: this.dataset }}) this.$router.push({path: '/main/pascal', query:{ dataset: this.dataset }})
} }
}, },
standardJSON(rawJSON,standard){ async downloadOutput(){
var JSONstandard = [] var filename = this.name
rawJSON.forEach(element => {
var area = element.label_width * element.label_height,
x_top_left = element.label_x_center - (0.5 * element.label_width),
y_top_left = element.label_y_center - (0.5 * element.label_height),
x_bot_right = element.label_x_center + (0.5 * element.label_width),
y_bot_right = element.label_y_center - (0.5 * element.label_height),
json = {
id: element.label_id,
image_id: element.image_id,
category_id: element.label_content_id,
area: area,
bounding_box: {
},
created_at: element.created_at,
updated_at: element.updated_at
}
if(standard == "coco"){
json.bounding_box.x_top_left = x_top_left
json.bounding_box.y_top_left = y_top_left
json.bounding_box.width = element.label_width
json.bounding_box.height = element.label_height
JSONstandard.push(json)
}else if(standard == "pascal"){
json.bounding_box.x_top_left = x_top_left
json.bounding_box.y_top_left = y_top_left
json.bounding_box.x_bot_right = x_bot_right
json.bounding_box.y_bot_right = y_bot_right
JSONstandard.push(json)
}
})
return JSONstandard
},
downloadOutput(){
var filename = this.name + '.json'
var element = document.createElement('a') var element = document.createElement('a')
if(this.type == 'json'){ if (this.type == 'json') {
this.json = await this.getCOCOJSONPerImage()
filename += '.json'
var text = JSON.stringify(this.json,0,4) var text = JSON.stringify(this.json,0,4)
element.setAttribute('href', 'data:text/json;charset=utf-8,' + encodeURIComponent(text)) element.setAttribute('href', 'data:text/json;charset=utf-8,' + encodeURIComponent(text))
} }
else{ else {
element.setAttribute('href', 'data:text/json;charset=utf-8,' + encodeURIComponent(this.xml)) this.json = await this.getPascalXMLPerImage()
console.log("XML AWAIT: ", this.json)
console.log("CONVERT: ", this.convertToXML(this.json))
filename += '.xml'
element.setAttribute('href', 'data:text/json;charset=utf-8,' + encodeURIComponent(this.convertToXML(this.json)))
} }
element.setAttribute('download',filename) element.setAttribute('download', filename)
element.style.display = 'none' element.style.display = 'none'
document.body.appendChild(element) document.body.appendChild(element)
element.click() element.click()
document.body.removeChild(element) document.body.removeChild(element)
}, },
convertToXML(){ convertToXML(json){
var option = { var option = {
compact: true, compact: true,
spaces: 4 spaces: 4
} }
var result = Convert.json2xml(JSON.stringify(this.json,0,4),option) var result = Convert.json2xml(JSON.stringify(json,0,4),option)
return result return result
}, },
Format(){ format(){
var xml = this.xml.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/ /g, '&nbsp;').replace(/\n/g,'<br />') var xml = this.convertToXML(this.json)
xml = xml.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/ /g, '&nbsp;').replace(/\n/g,'<br />')
// console.log("xml: ", this.json)
// var xml = this.convertToXML(this.json)
var mydiv = document.getElementById("xml") var mydiv = document.getElementById("xml")
if (mydiv) { if (mydiv) {
console.log("1") console.log("1")
......
...@@ -69,7 +69,6 @@ export default { ...@@ -69,7 +69,6 @@ export default {
var newPascalJSON = {"annotation": []} var newPascalJSON = {"annotation": []}
var allImages = await this.getAllImages() var allImages = await this.getAllImages()
if (allImages) { if (allImages) {
this.imagesAttributes = {}
var allLabels = await this.getAllLabel() var allLabels = await this.getAllLabel()
await this.setImagesAttr(allImages) await this.setImagesAttr(allImages)
await this.getObjectsAttr(allLabels) await this.getObjectsAttr(allLabels)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment