Open LogWell opened 2 years ago
Camera for pyrender
HEIGHT_DEPTH = 100
WIDTH_DEPTH = 100
FX_DEPTH = WIDTH_DEPTH
FY_DEPTH = HEIGHT_DEPTH
CX_DEPTH = WIDTH_DEPTH // 2
CY_DEPTH = HEIGHT_DEPTH // 2
camera = pyrender.IntrinsicsCamera(FX_DEPTH , FY_DEPTH, CX_DEPTH, CY_DEPTH)
From pyrender RGB + Depth to PointCloud. I would use open3d
def rgb_depth_to_RGBD(rgb, depth):
rgb = o3d.geometry.Image(rgb)
depth = o3d.geometry.Image(depth)
rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(
rgb, depth, convert_rgb_to_intensity=False
)
return rgbd_image
intrinsic = o3d.camera.PinholeCameraIntrinsic(
WIDTH_DEPTH,
HEIGHT_DEPTH,
FX_DEPTH,
FY_DEPTH,
CX_DEPTH,
CY_DEPTH,
)
rgbd_images = [
rgb_depth_to_RGBD(rgb, depth) for rgb, depth in zip(rgb_images, depth_images)
]
point_clouds = [
o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_image, intrinsic)
for rgbd_image in rgbd_images
]
How to restore point cloud from rendered depth image for persp camera:
camera = pyrender.camera.IntrinsicsCamera(fx, fy, cx, cy, znear=0.05, zfar=100.0, name=None)
and ortho camera:camera = pyrender.camera.OrthographicCamera(1.0, 1.0, znear=znear, zfar=zfar, name=None)
?