我按照全景图 - OpenCV 中的图像拼接在Android 上执行相同的任务,通过使用。openCV4Android
我的问题是关于通过建立的单应矩阵扭曲图像。我测试了这些图像:
图1:
图2:
通过建立的单应性扭曲 image1 的结果是:
你可以看到效果很好,但是第一部分(左侧)被剪掉了!所以拼接结果是:
以上图片在引用链接页面中的结果是:
为什么通过单应性切割翘曲?或者可能是我做错了什么?
我按照全景图 - OpenCV 中的图像拼接在Android 上执行相同的任务,通过使用。openCV4Android
我的问题是关于通过建立的单应矩阵扭曲图像。我测试了这些图像:
图1:
图2:
通过建立的单应性扭曲 image1 的结果是:
你可以看到效果很好,但是第一部分(左侧)被剪掉了!所以拼接结果是:
以上图片在引用链接页面中的结果是:
为什么通过单应性切割翘曲?或者可能是我做错了什么?
图 1 没有关于场景其余部分的任何信息。由于您仅在图像 1 上应用单应性,因此它相对于图像 2 会发生扭曲,但实际上并没有添加任何进一步的场景信息。
要获得所需的合成图像,请检查变形后图像 1 的最远 x 和 y 偏移,并将此缺失区域与拼接图像 2 一起添加。这不像添加那么简单,因为生成的图像更大,但是它也不是太复杂。
好的!最后我可以解决这个问题。我看到了这个答案并理解了导致这个问题的原因以及我如何解决这个问题:
出现问题是因为单应性将图像的一部分映射到图像区域之外的负 x,y 值,因此无法绘制。我们想要做的是将扭曲的输出偏移一些像素,以将整个扭曲的图像“分流”到正坐标(因此在图像区域内)......所以只需将单应性预乘以类似于上面的矩阵,并且您的输出图像将被偏移。