Does the depth unit make a difference for the 3d recontstruction? I have a D435i that does pretty good reconstructions (0.001m) but the L515 is horrible (0.00025m). Should I rescale the L515 depth image to 0.001 m?
Depth unit / factor in Open3D is not the precision of the sensor. Internally depth values are stored as uint16 numbers, and by dividing depth units they become float values in meters.
I haven’t used L515, but I guess the depth unit / factor is the same, i.e. 1000.
The default depth unit on the L515 is 0.00025 m. So 250. Should I scale the depth images before making fragments.
I am trying:
Scale the depth image to mm (L515 is 0.00025m by default)
depth = cv2.imread(depth_files[s])/(0.001/config[“depth_unit”])
cv2.imwrite(join(path, config[“folder_depth_scaled”], os.path.basename(depth_files[s])), depth)
Does the depth unit affect the intrinsics as well?
Didn’t realize that you were using cv2 to read… You may use IMREAD_UNCHANGED to read a 16 bit depth image, otherwise you only get a 8 bit depth precision.
Depth unit should not affect intrinsics.