open3d.t.io.DepthNoiseSimulator#
- class open3d.t.io.DepthNoiseSimulator#
Simulate depth image noise from a given noise distortion model. The distortion model is based on Teichman et. al. “Unsupervised intrinsic calibration of depth sensors via SLAM” RSS 2009. Also see <http://redwood-data.org/indoor/dataset.html>__
Example:
import open3d as o3d # Redwood Indoor LivingRoom1 (Augmented ICL-NUIM) # http://redwood-data.org/indoor/ data = o3d.data.RedwoodIndoorLivingRoom1() noise_model_path = data.noise_model_path im_src_path = data.depth_paths[0] depth_scale = 1000.0 # Read clean depth image (uint16) im_src = o3d.t.io.read_image(im_src_path) # Run noise model simulation simulator = o3d.t.io.DepthNoiseSimulator(noise_model_path) im_dst = simulator.simulate(im_src, depth_scale=depth_scale) # Save noisy depth image (uint16) o3d.t.io.write_image("noisy_depth.png", im_dst)
- __init__(self, noise_model_path)#
- Parameters:
noise_model_path (str) – Path to the noise model file. See http://redwood-data.org/indoor/dataset.html for the format. Or, you may use one of our example datasets, e.g., RedwoodIndoorLivingRoom1.
- enable_deterministic_debug_mode(self)#
Enable deterministic debug mode. All normally distributed noise will be replaced by 0.
- Returns:
None
- simulate(self, im_src, depth_scale=1000.0)#
Apply noise model to a depth image.
- Parameters:
im_src (open3d.t.geometry.Image) – Source depth image, must be with dtype UInt16 or Float32, channels==1.
depth_scale (float, optional, default=1000.0) – Scale factor to the depth image. As a sanity check, if the dtype is Float32, the depth_scale must be 1.0. If the dtype is is UInt16, the depth_scale is typically larger than 1.0, e.g. it can be 1000.0.
- Returns:
open3d.t.geometry.Image
- property noise_model#
The noise model tensor.