C++ Opencv拼接平面图像

C++ Opencv拼接平面图像,c++,opencv,panoramas,image-stitching,C++,Opencv,Panoramas,Image Stitching,我正在写一个程序,从无人机实时拍摄的视频中缝合航空图像。事实上,我正在做的是: 获得两个连续帧 查找这两个帧之间的特征 计算单应 计算图像偏移并将它们缝合在一起 问题是第三步,这就是为什么:我的代码和opencv缝合函数都计算单应性,断言我在某个轴上有旋转(因为它是全景图)。实际上,无人机就像一个“扫描器”,所以我用相机的平移来代替旋转。这会影响我的单应性,然后影响我的缝合步骤,从而产生瑕疵。有没有办法考虑相机翻译而不是旋转(像正字法)? 如果有帮助的话,我已经通过校准教程计算了相机的内在参数

我正在写一个程序,从无人机实时拍摄的视频中缝合航空图像。事实上,我正在做的是:

  • 获得两个连续帧
  • 查找这两个帧之间的特征
  • 计算单应
  • 计算图像偏移并将它们缝合在一起
  • 问题是第三步,这就是为什么:我的代码和opencv缝合函数都计算单应性,断言我在某个轴上有旋转(因为它是全景图)。实际上,无人机就像一个“扫描器”,所以我用相机的平移来代替旋转。这会影响我的单应性,然后影响我的缝合步骤,从而产生瑕疵。有没有办法考虑相机翻译而不是旋转(像正字法)? 如果有帮助的话,我已经通过校准教程计算了相机的内在参数

    附言:我在用c语言编程++

    编辑 我找到了这个由Nasa写的图书馆


    这有帮助吗?我可以将其与opencv一起使用吗?

    如果您的功能正确且分布均匀,单应性计算应该可以工作。没有像“相机正在旋转”这样的假设。。。但是:同形图仅适用于平面场景或旋转摄影机(但对于几乎平面的场景通常会给出正常的结果)。您可以对图像和结果进行adf采样吗?您是否取消了镜头扭曲?是的,我已使用opencv实用程序取消了相机镜头扭曲。这是我的无人机的飞行:我不知道为什么,但帧在某个点后被错误地缝合。我用AKAZE提取特征,并用2_nnin缝合进行匹配。在缝合过程中,存在某种(不可避免的)漂移。根据您的帧速率,最好不要缝合每个帧以减少漂移。你的链接对我不起作用…事实上,我觉得奇怪的是,没有办法得到一个马赛克而不毁掉它。非常奇怪的是,opencv没有点的正交投影!