Spaces:
Running
on
L40S
Running
on
L40S
import json | |
import os | |
from detrsmpl.core.cameras.camera_parameters import CameraParameter | |
from detrsmpl.core.renderer.vedo_render import VedoRenderer | |
from detrsmpl.utils.path_utils import check_path_suffix | |
def visualize_chessboard_kinects_rgb(chessboard_path: str, | |
interactive: bool = True, | |
show: bool = True): | |
"""Visualize all the RGB cameras in a chessboard file. | |
Args: | |
chessboard_path (str): | |
Path to the chessboard file. | |
interactive (bool, optional): | |
Pause and interact with window (True) or | |
continue execution (False). | |
Defaults to True. | |
show (bool, optional): | |
Whether to show in a window. | |
Defaults to True. | |
""" | |
# Load camera parameter from a json file | |
camera_para_json_dict = json.load(open(chessboard_path)) | |
camera_para_dict = {} | |
for camera_id in camera_para_json_dict.keys(): | |
try: | |
camera_id_int = int(camera_id) | |
# if camera_id is an instance of int | |
# and it can be divided by 2, it's an rgb camera | |
if camera_id_int % 2 == 0: | |
pass | |
else: | |
continue | |
except ValueError: | |
continue | |
temp_camera_parameter = CameraParameter(name=camera_id) | |
temp_camera_parameter.load_from_chessboard( | |
camera_para_json_dict[camera_id], camera_id) | |
camera_para_dict[camera_id] = temp_camera_parameter | |
camera_vedo_renderer = VedoRenderer() | |
camera_vedo_renderer.set_y_reverse() | |
for camera_id in camera_para_dict.keys(): | |
camera_vedo_renderer.add_camera(camera_para_dict[camera_id]) | |
if show: | |
camera_vedo_renderer.show(with_axis=False, interactive=interactive) | |
def visualize_dumped_camera_parameter(dumped_dir: str, | |
interactive: bool = True, | |
show: bool = True): | |
"""Visualize all cameras dumped in a directory. | |
Args: | |
dumped_dir (str): | |
Path to the directory. | |
interactive (bool, optional): | |
Pause and interact with window (True) or | |
continue execution (False). | |
Defaults to True. | |
show (bool, optional): | |
Whether to show in a window. | |
Defaults to True. | |
""" | |
file_list = os.listdir(dumped_dir) | |
camera_para_list = [] | |
for file_name in file_list: | |
file_path = os.path.join(dumped_dir, file_name) | |
if not check_path_suffix(file_path, ['.json']): | |
continue | |
else: | |
cam_para = CameraParameter() | |
cam_para.load(file_path) | |
camera_para_list.append(cam_para) | |
camera_vedo_renderer = VedoRenderer() | |
camera_vedo_renderer.set_y_reverse() | |
for camera_para in camera_para_list: | |
camera_vedo_renderer.add_camera(camera_para) | |
if show: | |
camera_vedo_renderer.show(with_axis=False, interactive=interactive) | |