MATLAB: Generate a point cloud from a given depth image-matlab Computer Vision System Toolbox

Computer Vision Toolboxdepthimageimage processingkinectpointcloud

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?

Best 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.
Related Question