# Is stereoRectifyUncalibrated efficient?

hello everybody, I'm using of OpenCV 2.4 for rectification of images with findFundamentalMatrix and stereoRectifyUncalibrated. nearly 2 weeks ago, I saw a matlab code about rectify and I became interested to compare the result between them. at the first I thought that the result of opencv will be better than matlab but after several experiments, I found that the matlab code is better. but why? I searched in internet about them and I found that they use of two difference algorithm according by 2 papers. I think the opencv uses of "Theory and Practice of Projective Rectiﬁcation" paper by "Richard I. Hartley" that you can found here.

But the base of matlab algorithm code is a paper from "A. Fusiello, E. Trucco and A. Verri" with "Quasi-Euclidean Uncalibrated Epipolar Rectiﬁcation" title that you can find here and the matlab source code is here. if you see the compRect.m file, you will notice that they use of non-linear least square method (Levenberg–Marquardt algorithm) to find the extrinsic parameters (rotation matrix and focal point).

And my question: why opencv don't use of second method while the result of that is better than opencv. If somebody used of second method (matlab code) already, please explain his experience.

edit retag close merge delete

What is the meaning of "better"? Less distortion? Better results on stereo computation? Fast performance? Could you show some images presenting examples? If you have problems with distortion, maybe the following question can help: http://answers.opencv.org/question/418/heavy-shearing-effects-using-hartleys/#677

The one implemented in MatLab could very well use subroutines written in Fortran or C, so their function implementation using a different algorithm could possibly be faster than openCV's implementation.

Where can I find a source for the used algorithm in matlab (EstimateUn​calibrated​Rectificat​ion())? I ask this question because on mathworks they only give Hartley&Zisserman as a source but the algorithm itself performs better than the H&S implementation. Any hints given would be useful!

Sort by » oldest newest most voted I think one reason that OpenCV uses the first one is the date of the publication released! Maybe the one who contributed the stereoRectifyUncalibrated did not know about the method.
It would be nice that if found the second one useful, contribute to the opensource community.

more

Official site

GitHub

Wiki

Documentation