floorplan-vectorizer / rcnn_model /extraction /from_labelme_runner.py
Dharini Baskaran
initial commit
1d64201
import os
import labelme2coco
from PIL import Image
from from_root import from_root
import floorplan_sampler
import json
def main():
convert_from_labelme()
handle_jpeg_files("annotations/train.json")
handle_jpeg_files("annotations/val.json")
print("NOW FOR SAMPLING")
floorplan_sampler.main()
def convert_from_labelme():
os.chdir(str(from_root("dataset")))
labelme_source_dir = "labelme_data"
annotation_dest_dir = "annotations"
training_split_percentage = .8
labelme2coco.convert(labelme_source_dir, annotation_dest_dir, training_split_percentage, category_id_start=0)
def handle_jpeg_files(coco_path):
#open file
file = open(coco_path,"r+")
coco = json.load(file)
#find and edit jpeg images
for image in coco["images"]:
img_name = image["file_name"]
if(".jpg" in img_name or ".jpeg" in img_name):
new_img_name = convert_to_png(img_name)
image["file_name"]=new_img_name
#save
file.seek(0)
json.dump(coco, file, indent=" ")
file.close()
def convert_to_png(img_path):
#load image
img = Image.open(img_path)
#remove .jpg or .jpeg from path
if(".jpeg" in img_path):
img_path = img_path[0:-5]
else:
img_path = img_path[0:-4]
#add .png and save
img_path += ".png"
img.save(img_path)
return img_path
main()