Can you use MATLAB for 3D Image Processing?

1 view (last 30 days)
Craig
Craig on 29 May 2015
Commented: D.Jaisil Rose on 4 Apr 2017
I'm familiar with 2D feature extraction using the object analysis functions in the image processing toolbox. With this I can identify various features and extract its 2D co-ordinates.
But how can I extend this idea to 3D? How can I identify an object and return its 3D co-ordinates? I'm open to any idea, and I have no constraints on physical modifications needed to make on the object to be identified. E.g, paint it green, add a sticker with concentric circles etc. I also do not mind if it only works when the object is within a specific range of distances from the camera. As long as I can get a 3D coordinate from a desired object in a 3D image.
I am using a kinect for windows camera, and I also have the Simulink Support for Kinect Library, which among other things returns a real color point cloud from the Kinect.
Thanks!

Answers (1)

David Young
David Young on 29 May 2015
Edited: David Young on 29 May 2015
It may be useful to look at the Computer Vision System Toolbox, which goes beyond the Image Processing Toolbox, and which includes stereo calibration and 3-D reconstruction.
But note that if you have a 3-D array already, many of the IPT functions such as regionprops will work. For many operations the extension from 2-D to 3-D is straightforward - if you are having trouble with a specific operation it might be worth saying more about it as it's probably easier to discuss a particular process rather than the very general question you've posed.
  2 Comments
Craig
Craig on 31 May 2015
Thanks for your answer. I do have a 3D image already, I have it as a depth image, or by using "depthToPointCloud" I get a point cloud. Do I need to convert into another format before using regionprops ?
Secondly, my 3D point cloud is a 640x480x3 matrix. How can I convert this into a simple matrix of [x,y,z] co-ordinates so I can use it with the clickA3Dpoint function, shown here.
This function takes arguments in the form:
[ 1, 1, 1 ;
1.5, 1.5, 1.5;
2, 2, 2 ]
And will return a point cloud with 3 points, at (1,1,1), (1.5,1.5,1.5) and (2,2,2). How can I convert my 640x480x3 point cloud matrix into this form?
D.Jaisil Rose
D.Jaisil Rose on 4 Apr 2017
Is the third coordinate(z) of your image is color planes(RGB)?or Is it the image depth?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!