generate a point cloud from a given depth image-matlab Computer Vision System Toolbox

I have purchased Computer Vision System Toolbox. I am given 400 of depth images (.PNG images). I would like to create a point cloud for each image. I looked at the documentation of Computer Vision System Toolbox, and there is an example of converting depth image to point cloud: http://uk.mathworks.com/help/vision/ref/depthtopointcloud.html
[xyzPoints,flippedDepthImage] = depthToPointCloud(depthImage,depthDevice)
depthDevice = imaq.VideoDevice('kinect',2)
but the thing that I don't understand is that it requires Kinect camera and connection. I am not connecting to Kinect, I don't have Kinect, I am just given the output of Kinect which are the depth images.
how to make use of the function(depthToPointCloud) in the toolbox in generating cloud points from already given depth images without connecting to Kinect camera?

 Accepted Answer

If all you have is a depth map, you cannot convert it into a point cloud, without knowing the parameters of the camera that was used to obtain it. depthToPointCloud needs a Kinect, because it assumes that the depth map came from the Kinect, and it uses Kinect's calibration parameters to get the 3D coordinates.
Alternatively, there is a reconstructScene function, which produces a point cloud from a stereo disparity map obtained from a calibrated stereo pair of cameras.
So, you would need to find out what device was used to generate your depth map, and what the parameters of that device are.

3 Comments

Hi Dima, how does the reconstructScene function helps, if you have depth images? Is there a way to use it with depth images and not with the disparity map?
Sorry, I didn't really think it through.
In theory, it can work, because depth is inversely proportional to disparity. In practice, it would be difficult, because you would have to somehow "fake" parameters of a stereo camera, to convert depth into disparity, and to create a stereoParameters object.
@mat any answer, i have the same problem please help

Sign in to comment.

More Answers (2)

This code is used to generate point cloud from depth image, which captured by Kinect
This link can help to convert RGB-D images to point cloud, provided the camera intrinsic parameters.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!