Zai
test
06db6e9
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)