xrfeitoria.utils.viewer

Utils for loading images and annotations.

class xrfeitoria.utils.viewer.Viewer(sequence_dir: str | Path)[source]

Utils for loading images and annotations.

Examples

>>> viewer = Viewer('/path/to/sequence')
>>> camera_name = 'cam'
>>> frame = 0
>>> img = viewer.get_img(camera_name=camera_name, frame=frame)
>>> mask = viewer.get_mask(camera_name=camera_name, frame=frame)
>>> depth = viewer.get_depth(camera_name=camera_name, frame=frame)
>>> flow = viewer.get_flow(camera_name=camera_name, frame=frame)
>>> normal = viewer.get_normal(camera_name=camera_name, frame=frame)
>>> diffuse = viewer.get_diffuse(camera_name=camera_name, frame=frame)
__init__(sequence_dir: str | Path) None[source]

Initialize with the sequence directory.

Parameters:

sequence_dir (PathLike) – path to the sequence directory

get_depth(camera_name: str, frame: int, inverse: bool = False, depth_rescale: float = 1.0) ndarray[source]

Get depth of the given frame (‘depth/{frame:04d}.*’)

Parameters:
  • camera_name (str) – the camera name

  • frame (int) – the frame number

  • inverse (bool, optional) – whether to inverse the depth. If True, white (255) represents the farthest, and black (0) represents the nearest. if False, white (255) represents the nearest, and black (0) represents the farthest. Defaults to False.

  • depth_rescale (float, optional) – scaling the depth to map it into (0, 255). depth = depth / depth_rescale. Depth values greater than depth_rescale will be clipped. Defaults to 1.0.

Returns:

np.ndarray – depth of shape (H, W, 3)

get_diffuse(camera_name: str, frame: int) ndarray[source]

Get diffuse image of the given frame (‘diffuse/{frame:04d}.*’)

Parameters:
  • camera_name (str) – the camera name

  • frame (int) – the frame number

Returns:

np.ndarray – image of shape (H, W, 3)

get_flow(camera_name: str, frame: int) ndarray[source]

Get optical flow of the given frame (‘flow/{frame:04d}.*’)

Parameters:
  • camera_name (str) – the camera name

  • frame (int) – the frame number

Returns:

np.ndarray – optical flow of shape (H, W, 3)

get_img(camera_name: str, frame: int) ndarray[source]

Get rgb image of the given frame (‘img/{frame:04d}.*’)

Parameters:
  • camera_name (str) – the camera name

  • frame (int) – the frame number

Returns:

np.ndarray – image of shape (H, W, 3)

get_mask(camera_name: str, frame: int) ndarray[source]

Get mask of the given frame (‘mask/{frame:04d}.*’)

Parameters:
  • camera_name (str) – the camera name

  • frame (int) – the frame number

Returns:

np.ndarray – image of shape (H, W, 3)

get_normal(camera_name: str, frame: int) ndarray[source]

Get normal map of the given frame (‘normal/{frame:04d}.*’)

Parameters:
  • camera_name (str) – the camera name

  • frame (int) – the frame number

Returns:

np.ndarray – normal map of shape (H, W, 3)

DEPTH = 'depth'
DIFFUSE = 'diffuse'
FLOW = 'flow'
IMG = 'img'
MASK = 'mask'
NORMAL = 'normal'
property camera_names: List[str]
property frame_num: int