HEAT / qualitative_outdoor /visualize_npy.py
Egrt's picture
init
424188c
import os
import json
import cv2
import numpy as np
import cairosvg
from plot_utils import plot_preds, svg_generate
image_base = '../../data/outdoor/cities_dataset/rgb/'
svg_base = './svg_results'
if not os.path.exists(svg_base):
os.makedirs(svg_base)
data_filename = '../data/outdoor/cities_dataset/valid_list.txt'
with open(data_filename) as f:
filenames = f.readlines()
filenames = filenames[50:] # according to previous works, the testing samples are the last 350 samples of the val split
filenames = [filename.strip() for filename in filenames]
idx_to_filename = {idx: filename for idx, filename in enumerate(filenames)}
method_name = 'heat'
results_base = '../results/npy_outdoor_test_256/'
svg_method_base = os.path.join(svg_base, method_name)
if not os.path.exists(svg_method_base):
os.makedirs(svg_method_base)
for result_filename in sorted(os.listdir(results_base)):
file_idx = int(result_filename[:-12])
filename = idx_to_filename[file_idx]
image_path = os.path.join(image_base, filename + '.jpg')
results_path = os.path.join(results_base, result_filename)
results = np.load(results_path, allow_pickle=True).tolist()
corners = results['corners'].astype(np.int)
edge_ids = results['edges']
edges = corners[edge_ids].reshape(edge_ids.shape[0], -1)
svg = svg_generate(image_path, corners, edges, name='temp', size=256)
svg_path = os.path.join(svg_base, 'tmp.svg')
svg.saveas(svg_path) # save the svg file temporarily
svg_img_path = os.path.join(svg_method_base, '{}.png'.format(filename))
cairosvg.svg2png(url=svg_path, write_to=svg_img_path)