This algorythm is working well: 1. undistort image 2. acquire features 3. match features 4. estimate fundamental matrix 5. calculate essential matrix 6. calculate R and t 7. bundle adjustment (i.e., estimation of 3D points and/or cameras based on minimization of reprojection errors across all images and points). Restrictions are:...

computer-vision,3d-reconstruction

You need to invert the camera matrices to get to normalized image coordinates, so it is: E = inv(transpose(Kleft)) * R * Tx * inv(Kright) where Tx is the matrix representation of the cross product by t: Tx = [ 0 -t(3) t(2) t(3) 0 -t(1) -t(2) t(1) 0 ]...

computer-vision,3d-reconstruction

You get depth by measuring stereo disparity, which is inversely proportional to depth. So, if you want to measure things far away from your cameras, the disparity can get very small. Eventually it becomes too small for your cameras to resolve, and your measurement returns an infinite depth. Increasing the...

matlab,plot,3d,3d-reconstruction

What you really have is 4D data, not 3D, I suppose. I guess that you have is a value of C for every X,Y,Z. And it actually depends a lo tin what type of data you have. you need to give more information. In general have a look to 4D...

matlab,matrix,camera,3d-reconstruction

The problem with comparing 3D reconstruction results is, that your reconstruction is only up to scale. Unless you have some kind of reference object with known dimension in your scene the absolute scale of your reconstruction is arbitrary. The same goes for the orientation of the cameras and the 3d...

matlab,matlab-cvst,3d-reconstruction,disparity-mapping

First question: which version of MATLAB are you using? Older releases have been using the simple block matching algorithm, which is not very robust. The latest release (R2014a) is using the Semi-Global Block Matching algorithm by default, which is much better. 'DisparityRange' depends on the distance from the camera to...

opencv,stereo-3d,3d-reconstruction,stereoscopy,disparity-mapping

I have made a simple comparison between OpenCV's reprojectImageTo3D() and my own (see below), and also run a test for a correct disparity and Q matrix. // Reproject image to 3D void customReproject(const cv::Mat& disparity, const cv::Mat& Q, cv::Mat& out3D) { CV_Assert(disparity.type() == CV_32F && !disparity.empty()); CV_Assert(Q.type() == CV_32F &&...

The answer here is somewhat obvious, although it wasn't so at the time. The projection matrices I'm looking for was P1 and P2. This can be straight away used to work with triangulatePts. My confusion was due to looking at how to construct the projection matrices with distortion parameters. Actually,...

I'm guessing your problem is almost certainly at the abs(X-Xhat) line. Why? You seem to be doing some sort of wavelet decomposition/reconstruction, and if you don't pass in the right parameters your output may be larger than the original image. Therefore it makes no sense to ask for X-Xhat if...

opencv,opengl,blender,stereo-3d,3d-reconstruction

Its possible to do in Blender, but for your simple purpose Opengl should be enough. To get started with Modern Opengl check this list of contents: link In opengl, before drawing anything you must "send" data (vertices) to your GPU. One part of this process is called Vertex Buffer Object....

algorithm,opencv,computer-vision,computational-geometry,3d-reconstruction

I'm not sure if this helps, but I quickly converted both images to 1-D functions by finding the index of the maximum value in each line (blue and red). On the same figure I show the derivatives (cyan and green). At least it seems your points could perhaps be found...