【问题标题】:OpenCV,Warp images by Homography matrixOpenCV,通过单应矩阵扭曲图像
【发布时间】:2015-03-18 05:05:17
【问题描述】:

我跟着Panorama – Image Stitching in OpenCV 在Android 上做同样的任务,使用openCV4Android。我的问题是关于通过建立的单应矩阵扭曲图像。我测试了这些图像:

图像1:

图像2:

通过建立的单应性对image1进行翘曲的结果是:

你可以看到结果很好变形但是第一部分(左侧)被剪掉了!所以拼接结果是:

以上图片在引用链接页面的结果是:

为什么通过单应性进行翘曲切割?或者可能是我做错了什么?

【问题讨论】:

    标签: android image opencv homography opencv4android


    【解决方案1】:

    好的!终于我可以解决问题了。我看到this answer 并了解导致此问题的原因以及如何解决:

    出现问题是因为单应性将图像的一部分映射到 图像区域之外的负 x,y 值因此不能 绘制。我们希望做的是将扭曲的输出抵消一些 将整个扭曲图像“分流”为正的像素数 坐标(因此在图像区域内)......所以只是预乘 您的单应性矩阵与上述类似,以及您的输出 图像将被偏移。

    【讨论】:

      【解决方案2】:

      图 1 没有关于场景其余部分的任何信息。由于您仅在图像 1 上应用单应性,因此它相对于图像 2 会发生扭曲,但实际上并没有添加任何进一步的场景信息。

      要获得所需的合成图像,请检查变形后图像 1 的最远 x 和 y 偏移,并将此缺失区域与拼接图像 2 一起添加。这不像添加那么简单,因为结果图像是更大,但也不是太复杂。

      【讨论】:

      • 我试图按照我最初链接的内容并测试它的图像。但是为什么它的结果是好的?
      • 不知道为什么你编辑了你的代码......无论如何,如果你比较你的代码和你链接的内容,结果图像被初始化的部分,以及扭曲的图像 1 和图像 2都是抄来的,完全不一样。逐行比较这些部分将回答您的问题。
      猜你喜欢
      • 2018-07-29
      • 2015-10-03
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 2011-05-31
      • 1970-01-01
      相关资源
      最近更新 更多