Spaces:
Build error
Build error
| """ | |
| @Date: 2021/10/08 | |
| @description: | |
| """ | |
| import numpy as np | |
| import cv2 | |
| from postprocessing.dula.layout import fit_layout | |
| from postprocessing.dula.layout_old import fit_layout_old | |
| from utils.conversion import depth2xyz, xyz2depth | |
| def post_process(b_depth, type_name='manhattan', need_cube=False): | |
| plan_y = 1 | |
| b_xyz = depth2xyz(b_depth, plan_y) | |
| b_processed_xyz = [] | |
| for xyz in b_xyz: | |
| if type_name == 'manhattan': | |
| processed_xz = fit_layout(floor_xz=xyz[..., ::2], need_cube=need_cube, show=False) | |
| elif type_name == 'manhattan_old': | |
| processed_xz = fit_layout_old(floor_xz=xyz[..., ::2], need_cube=need_cube, show=False) | |
| elif type_name == 'atalanta': | |
| processed_xz = cv2.approxPolyDP(xyz[..., ::2].astype(np.float32), 0.1, False)[:, 0, :] | |
| else: | |
| raise NotImplementedError("Unknown post-processing type") | |
| if need_cube: | |
| assert len(processed_xz) == 4 | |
| processed_xyz = np.insert(processed_xz, 1, plan_y, axis=1) | |
| b_processed_xyz.append(processed_xyz) | |
| return np.array(b_processed_xyz) |