How to convert 2d into 3D image

Now I am doing conversion of 2D images to 3D images. For that am using following steps.

(1). Input 2 images. (2). Detect keypoints using SIFT. (3). Extract Descriptors. (4). Compare and match descriptors. (5). find fundamental mat (findFundamentalMat()) from these pairs. (6). stereoRectifyUncalibrated(). (7). reprojectImageTo3D().

Now I want to know that what is this xyz and Q in reprojectImageTo3D? And what are the values given to xyz and to Q?

reprojectImageTo3D(imgDisparity8U, xyz, Q, true);

Because I got an error like this:

OpenCV Error: Assertion failed (Q.size() == Size(4,4)) in reprojectImageTo3D, file /home/arya/stuff/opencv/opencv-2.4.7/modules/calib3d/src/calibration.cpp, line 2823

edit retag close merge delete

Hi, is it the steps are similar for 3d reconstruction process?

( 2019-04-11 06:27:53 -0500 )edit

Sort by » oldest newest most voted

xyz is an output argument; after the function runs it will contain a 'vertex map', which is basically a matrix with 3 channels for each of the X,Y,Z coordinates of the 3D points you get back.

Your problem is with the Q matrix, also known as the reprojection matrix. To construct Q, you need to know the intrinsic parameters of your left camera (principal points and focal length) and possibly the principal point of the right camera. Unfortunately, without camera calibration you won't get these; you need to calibrate your cameras and run stereoRectify(), which will give you Q directly.

Technically, the error is occurring because reprojectImageTo3D() expects Q to be a 4x4 matrix, and whatever you gave it is not, but more generally, you can't produce Q with the information you have. I'd suggest reading the book 'Learning OpenCV' if you have access to it, it explains the relevant theory pretty well. There seem to be a few PDFs floating around on university course pages online, if you can't find it elsewhere.

more

I believe Q is either H1 or H2 from stereoRectifyUncalibrated depending on which frame imgDisparity8U is with respect to.

more

I tried H1 and H2 instead of Q. But it shows the same error.

( 2014-11-25 03:11:46 -0500 )edit

I don't think that's correct. H1 and H2 are homography matrices that describe the warping required to rectify the left and right images respectively. Q is a matrix that can be used to project image points, along with their disparity value obtained from stereo matching, to 3D points

( 2015-02-04 03:11:00 -0500 )edit