我开发了一个对象识别应用程序,使用 SURF 算法的 Chris Evans OpenSURF 实现。我正在做一些实验,我刚刚意识到,如果我通过 IDE 启动应用程序或直接双击 .exe 文件启动应用程序,算法表现不佳。我检查了 .exe 文件是我通过 IDE 启动的代码的二进制编译。从 IDE 或从 .EXE 启动应用程序时,浮点精度似乎有些不同,因为 SURF 算法是确定性的,相同的输入总是必须返回相同的输出。一些例子。第一列和第二列是从图像中提取的点数。第三列是第一列和第二列之间的差异。
EXE VS 差异
17340 17366 -26 图片001
4639 4631 8 图片002
3196 3189 7 图片003
10442 10441 1 图片004
1485 1477 8 图片005
5539 5555 -16 图片006
18102 18073 29 图片007
如果算法和代码完全相同,任何人都可以告诉我为什么输出不同?
谢谢