def rif(idir, xdir): print(idir) print(xdir) xmls = os.listdir(xdir) total_repaired = 0 for xmlname in xmls: imname = os.path.join(idir, xmlname.replace('_car.xml', '.png')) xmlname = os.path.join(xdir, xmlname) img = cv2.imread(imname) h,w,_ = img.shape points,skpd = serialize.xml_to_points(xmlname) for p in points: total_repaired += repair(p['coords'], h, w) xml = serialize.points_to_xml(points,skpd) print(xml, file=open(xmlname, 'w')) print('{} repaired in {} files'.format(total_repaired, len(xmls)))
import time import copy sys.path.append('../') import serialize import plot import print2forum get_stat_l = lambda f: [ { 'position': {'x':p['coords']['ix'],'y':p['coords']['iy']}, 'width' : abs(p['coords']['ix'] - p['coords']['x']), 'height': abs(p['coords']['iy'] - p['coords']['y']), 'class' : p['class'] } for p in serialize.xml_to_points(f)[0] ] flatten = lambda l: [el for sl in l for el in sl] def get_points_for_dir(dname): points = [] try: for root, dirs, files in os.walk(dname): if any( v in root for v in ['Datacam','nuviCam']): continue if dirs: points.extend( flatten(list( map( get_points_for_dir, list(os.path.join(root,d) for d in dirs) )