Jiading Fang
add define
fc16538
raw
history blame
1.46 kB
# TRI-VIDAR - Copyright 2022 Toyota Research Institute. All rights reserved.
import pickle as pkl
import numpy as np
from PIL import Image
from vidar.utils.decorators import iterate1
def read_pickle(filename):
"""
Read pickle file
Parameters
----------
filename : String
File to read from
Returns
-------
data : Value
Data loaded from file
"""
if not filename.endswith('.pkl'):
filename += '.pkl'
return pkl.load(open(filename, 'rb'))
@iterate1
def read_image(path):
"""
Read an image using PIL
Parameters
----------
path : String
Path to the image
Returns
-------
image : PIL Image
Loaded image
"""
return Image.open(path)
@iterate1
def read_depth(file):
"""
Load a depth map from file
Parameters
----------
file : String
Depth map filename (.npz or .png or .dpt)
Returns
-------
depth : np.array
Depth map (invalid pixels are 0) [H,W]
"""
# If loading a .npz array
if file.endswith('npz'):
return np.load(file)['depth']
# If loading a .png image
elif file.endswith('png'):
depth_png = np.array(read_image(file), dtype=int)
assert (np.max(depth_png) > 255), 'Wrong .png depth file'
return depth_png.astype(np.float) / 256.
# Invalid type
else:
raise NotImplementedError('Depth extension not supported.')