0

I am using OpenCV SURF for comparing two images using Visual C++. I have been able to successfully develop the application and build the exe.

Now I am facing a strange problem. The number of matches I get while running the program from IDE (Visual Studio) is different than the number of matches I get when running the exe.

I think this has some thing to do with floating point numbers as they behave weirdly as mentioned in this article.

Why does this floating-point calculation give different results on different machines?

I checked the OpenCV SURF implementation. Over there, the SURF descriptors are calculated by float (CV_32F) and hence they are causing floating point comparison accuracy error.

How do I resolve this error?

Community
  • 1
  • 1
milan m
  • 2,164
  • 3
  • 26
  • 40
  • How different ? Is it like 100 on one side and 1000 on the other ? Or is it just a few ? Because in that case, I don't think SURF is deterministic, it can provided different results at each run. – kebs May 16 '14 at 13:31
  • @kebs I'm not familiar with SURF in particular, but usually software that needs to generate random numbers allows the user to set a seed to be able to obtain reproducible results. – Pavel May 16 '14 at 16:03

0 Answers0