How do I find 3D coordinates from stereo picture pair?

25 views (last 30 days)
I am trying to measure the distance between two points (e.g. length of pen by using each end as a point) in a 3 dimensional space.
I have:
  • taken stereo images
  • calibrated the cameras
  • rectified the images
  • created a disparity map
  • generated a point cloud
Now, I need to get the 3D coordinates for both of the points, to then calculate the distance between the two points. How do I get the 3D coordinates for a point? Moreover, how would I be able to choose the point in the first place? Is there an option to just choose a point straight from an image and MATLAB then gives you the coordinates? Or is there even some sort of code which let's me chose two points and then automatically calculates the distance between the two points?

Answers (1)

Qu Cao
Qu Cao on 24 Aug 2020
You can use reconstructScene function to compute the 3-D world points from a disparity map. Then, you can query the 3-D coordinates of an image point by its location in the image coordinates.
  1 Comment
Maurice Kasprowsky
Maurice Kasprowsky on 25 Aug 2020
Thanks. I used recostructScene already to get the point cloud. I used getpts to select the points of interest. Should I use the left or the right image, and should I use the rectified or non-rectified version of that image to select the point? What is the command to query the 3D coordinates from the image coordinates I got?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!