Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1.  
  2. directory = 'C:\\Users\\stuart.rucker\\Desktop\\python\\CNTK-master\\Examples\\Image\\DataSets\\CustomDataset2\\positive'
  3.  
  4. import csv
  5. import os
  6. import imghdr
  7. from PIL import Image
  8.  
  9.  
  10. def get_image_size(fname):
  11. im=Image.open(fname)
  12. return im.size # (width,height)
  13.  
  14.  
  15. def createBoundingBox(raw_name,name,xcenter,ycenter,zoom):
  16. dimensions = get_image_size(os.path.join(directory,name))
  17. width = dimensions[0]
  18. height = dimensions[1]
  19.  
  20. topleft = (int(xcenter-zoom*.5*width),int(ycenter-zoom*.5*height))
  21. bottomright = (int(xcenter+zoom*.5*width),int(ycenter+zoom*.5*height))
  22.  
  23. f=open(directory + "\\" + raw_name + ".bboxes.tsv", "w+")
  24. f.write(str(topleft[0]) + "\t" + str(topleft[1]) + "\t" + str(bottomright[0]) + "\t" + str(bottomright[1]) +"\n")
  25. f.close()
  26.  
  27. g = open(directory + "\\" + raw_name + ".bboxes.labels.tsv", "w+")
  28. g.write("car")
  29. g.close()
  30.  
  31.  
  32.  
  33. allfiles = (os.listdir(directory))
  34. usefulfiles = dict()
  35. for d in allfiles:
  36. usefulfiles[d] = False
  37.  
  38.  
  39.  
  40. queue = []
  41.  
  42. with open('data.csv', newline='') as csvfile:
  43. reader = csv.DictReader(csvfile)
  44. for row in reader:
  45.  
  46. raw_name = (row['LOCATION_ID']+'_'+row['ID']+'_' + ('A' if (row['IMAGE_TYPE']=='OVR1') else 'B'))
  47. name = raw_name +'.jpg'
  48. if name in usefulfiles:
  49. # print(name)
  50. usefulfiles[name] = True
  51. queue.append((raw_name,name,int(row['X_CLICK']),int(row['Y_CLICK']),float(row['ZOOM_FACTOR'])))
  52.  
  53. # print (usefulfiles)
  54.  
  55. for key, value in usefulfiles.items():
  56. if not value:
  57. # print(directory)
  58. os.remove(os.path.join(directory,key))
  59. print("deleting " + os.path.join(directory,key))
  60.  
  61.  
  62.  
  63. for event in queue:
  64. createBoundingBox(event[0],event[1],event[2],event[3],event[4])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement