5

我正在 OpenCV 中进行图像拼接,我正在从不同位置拍摄平面场景的照片并尝试合成全景图。我已经修改了拼接示例以满足我的需要。openCV 拼接管道的问题在于,它假设相机是纯旋转的,但对我来说并非如此。当图片完全垂直于场景拍摄时(没有相机旋转,只是平移),结果相当好,但是当同时存在相机旋转和平移时,结果并不令人满意。

我能够计算相机位置之间的单应性,这可以完成,因为场景是平面的,但我真的不知道下一步是什么。我的想法是使用单应性使图像不失真,相机正对平面正交,然后应用拼接。问题在于,我不知道特征点的真实位置。我该怎么做呢?对于具有任意相机移动的平面场景,我还有什么可以尝试获得更好的拼接结果的吗?

4

1 回答 1

0

opencv 拼接代码通过假设翻译为零来工作。因此,如果翻译在一个范围内,它将正常工作。否则它将拒绝遥远的图像。如果你想使用翻译后的图像集,你需要使用 decomposehomgraphymat,它会给出非零的平移和旋转。但是对于翘曲和混合,opencv 仅使用相机参数的旋转。所以你需要设计一种全新的非旋转拼接方法,也许你看看微软的光合作用工作。我不确定,但它只适用于翻译的图像。

于 2016-09-02T04:49:01.927 回答