|
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:] |
|
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) |
|
|
|
svg_img_path = os.path.join(svg_method_base, '{}.png'.format(filename)) |
|
cairosvg.svg2png(url=svg_path, write_to=svg_img_path) |
|
|