38 lines
1.9 KiB
Python
Executable File
38 lines
1.9 KiB
Python
Executable File
import os
|
|
import cv2
|
|
import shutil
|
|
from tqdm import tqdm
|
|
anno_pathRoot = "/data/DataManagement/Project/CAS_ProjectBird/CDB_ProjectBird/Annotations_Original/"
|
|
image_pathRoot = anno_pathRoot.replace("/Annotations_Original/","/JPEGImages_Original/")
|
|
w = 1024
|
|
h = 768
|
|
|
|
def DetResizeForTrain(anno_pathRoot,image_pathRoot,w,h):
|
|
annoResultPath = anno_pathRoot.replace("/Annotations_Original/","/Annotations/")
|
|
annoJPEGPath = anno_pathRoot.replace("/JPEGImages_Original/", "/JPEGImages/")
|
|
for anno in tqdm(os.listdir(anno_pathRoot)):
|
|
anno = GEN_Annotations(anno.replace(".xml", ".jpg"))
|
|
dom = xml.dom.minidom.parse(os.path.join(anno_pathRoot, xmls))
|
|
size = dom.getElementsByTagName("size")
|
|
# print(size[0].getElementsByTagName('width')[0].childNodes[0].data)
|
|
width = size[0].getElementsByTagName('width')[0].childNodes[0].data
|
|
height = size[0].getElementsByTagName('height')[0].childNodes[0].data
|
|
depth = size[0].getElementsByTagName('depth')[0].childNodes[0].data
|
|
anno.set_size(int(w), int(h), int(depth))
|
|
objects = dom.getElementsByTagName("object")
|
|
for object in objects:
|
|
bndbox = object.getElementsByTagName('bndbox')[0]
|
|
xmin = bndbox.getElementsByTagName('xmin')[0]
|
|
ymin = bndbox.getElementsByTagName('ymin')[0]
|
|
xmax = bndbox.getElementsByTagName('xmax')[0]
|
|
ymax = bndbox.getElementsByTagName('ymax')[0]
|
|
|
|
xmin_data = int(xmin.childNodes[0].data)*(w/width)
|
|
ymin_data = int(ymin.childNodes[0].data)*(h/height)
|
|
xmax_data = int(xmax.childNodes[0].data)*(w/width)
|
|
ymax_data = int(ymax.childNodes[0].data)*(h/height)
|
|
label_name = object.getElementsByTagName('name')[0].childNodes[0].data
|
|
anno.add_pic_attr(label=label_name, xmin=xmin_data, xmax=xmax_data, ymin=ymin_data, ymax=ymax_data)
|
|
anno.savefile(os.path.join(annoResultPath, xmls))
|
|
image = cv2.imread
|