Spaces:
Runtime error
Runtime error
import numpy as np | |
import matlab | |
import matlab.engine as engine | |
import os | |
eng = engine.start_matlab() | |
eng.addpath(os.path.join(os.path.dirname(__file__),'matlab'),nargout=0) | |
GT_ThRESHOLD = 6 | |
PRED_ThRESHOLD = 12 | |
REFINE_ThRESHOLD = 18 | |
def align_fp(boundary, boxes, types, edges, image, threshold, dtype=int): | |
boundary = np.array(boundary,dtype=int).tolist() | |
boxes = np.array(boxes,dtype=int).tolist() | |
types = np.array(types,dtype=int).tolist() | |
edges = np.array(edges,dtype=int).tolist() | |
image = np.array(image,dtype=int).tolist() | |
boxes_aligned, order, room_boundaries = eng.align_fp( | |
matlab.double(boundary), | |
matlab.double(boxes), | |
matlab.double(types), | |
matlab.double(edges), | |
matlab.double(image), | |
threshold,False,nargout=3 | |
) | |
boxes_aligned = np.array(boxes_aligned,dtype=dtype) | |
order = np.array(order,dtype=dtype).reshape(-1)-1 | |
room_boundaries = np.array([np.array(rb,dtype=float) for rb in room_boundaries]) # poly with hole has value 'nan' | |
return boxes_aligned, order, room_boundaries | |
def align_fp_gt(boundary, boxes, types, edges, dtype=int): | |
return align_fp(boundary, boxes, types, edges, [], GT_ThRESHOLD, dtype) | |
def align_fp_pred(boundary, boxes, types, edges, dtype=int): | |
return align_fp(boundary, boxes, types, edges, [], PRED_ThRESHOLD, dtype) | |
def align_fp_refine(boundary, boxes, types, edges, image, dtype=int): | |
return align_fp(boundary, boxes, types, edges, image, REFINE_ThRESHOLD, dtype) |