3

Ok I am posting my conundrums of life to stackoverflow after 4 days of mindless programming when nothing seems to get things right or atleast close to right. sorry for being a little dramatic but I feel like a lousy programmer today.

Anyway, my problem is:

To obtain Fundamental matrix using RANSAC (N>8).

I have two images with wide baseline but sufficient overlap so that adequate amount of SURF keypoints (~308) are matched correctly (i plot them).

Now lies the problem. I pass the 2D points to cv::findFindamentalMat but I get completly baseless results. The function returns:

     FundMat=[2.05148e-13    3.72341 -2.03671e+10
              1.6701e+26    -4.17712  4.59533e+29
              3.32414e+18    2.8843   1.91069e-26]

To circumvent the large dynamic range of the matrix, Hartley suggested to normalise the data points (in euclidean space and not the projection space normalization)....Even after doing that the result is the almost the same. (10^-9 to 10^9)

I understand that FundMat is accurate only upto scale but a difference of 10^-9 to 10^+9 is too much.

I referred to other questions here but i dont seem to get any leads:findfundamentalmatrix-doesnt-find-fundamental-matrix how-to-calculate-the-fundamental-matrix-for-stereo-vision

Any ideas would be great. This is a very important step when considering uncalibrated images for the rest of the software pipeline.

n case the code is helpful. (its not indented and colored though..space is too less here.) https://sites.google.com/site/3drecon124/

Community
  • 1
  • 1
snowmonkey
  • 277
  • 1
  • 4
  • 11

1 Answers1

0

its solved...silly human error. there was a data type conversion from double to float and it caused data to be fetched from incorrect locations in memory. now its smooth and epipolar constraint is satisfied upto scale.

snowmonkey
  • 277
  • 1
  • 4
  • 11