我正在尝试计算一个单应矩阵来校准相机图像与它所指向的监视器的图像。我们开发了一个自动校准程序,我们:
- 在屏幕上显示图像
- 使用相机拍摄图像
- 在图像中查找匹配特征
- 使用 SurfFeatureDetector 检测两个图像中的特征
- 使用 SurfDiscriptorExtractor 获取描述符
- 使用 FlannBasedMatcher 查找匹配特征
- 使用最佳匹配点计算单应矩阵
我们的操作系统是 Windows 7 Pro,64 位,但我们正在构建为 32 位应用程序。我们使用的是 OpenCV 2.4.5。
这在我的个人帐户中工作正常,但只有当我通过双击可执行文件从我的帐户运行它时。当我从 Visual Studio 运行它,或从另一个帐户运行相同的可执行文件时,我们得到一个垃圾单应矩阵。
它似乎在步骤 3.1 中崩溃了。看起来应用程序在以不同方式运行时会找到不同的点,即使它是具有相同照明条件的同一台相机。
有没有其他人见过这种行为?