Pointcloud from RGBD does not work!

Hi There,

I am following the RGBDImage tutorial. I would like to display a pointcloud of RGBD images that I have taken with my Intel RealSense D435i camera.

What are the units for the focal length parameters of o3d.camera.pinHoleCameraIntrisic()?

  • fx ( float ) – X-axis focal length ?
  • fy ( float ) – Y-axis focal length ?

The focal length of my camera (intelRealSense D435i) is 1.88mm but that value outputs basically a flat pointcloud.

Also bonus question,

how do I display/print the PinHoleCameraIntrinsicParamers.PrimeSenseDefault?

Thank you for your help.

Best,
Sam

1 Like

I think I worked out that the the focal length units should also be in pixels. But still the pointcloud that it’s outputting is augmented.

Does anyone else have this issue? Or know why this is happening?

Best,
Sam

I believe you should set depth_unit if it is a scale problem. If it is a deformation, then it is about the calibration matrix.

Hi Sam,

I am very interested in the conclusion you arrived at! I am too working with an Intel RealSense D435i Camera generating point clouds from depth images. I do not understand why O3D would take the parameter focal length in pixels instead of in millimeters. I have not found a unique way to calculate the focal length in px from the focal length in mm. Did you?

Because I am not sure the way I have calculated f in px is correct, my point clouds are not correctly scaled.

I would be very glad to hear back from you!

Best,
Pablo

I kind of have a similar problem: I used Vision Transformers for Dense Prediction (DPT) to estimate the depth of color images and would like to display the result now in open3d. The problem is that the generated pointclouds look very deformed, all pixels tend to move to one single point.

Would it be possible to create a pointcloud which is not deformed by the focal length (so every pixel is just moved on the z-axis without any transformation)?

I already played around with the depth-scale and depth-trunc parameters, but I think it has to do with the intrinsic parameters of the camera.