OpenCV,通过单应矩阵扭曲图像
OpenCV,Warp images by Homography matrix
我跟随 Panorama – Image Stitching in OpenCV 使用 openCV4Android
在 Android 上完成了相同的任务。我的问题是关于通过建立的单应性 matrix.I 测试这些图像的扭曲图像:
图片 1:
图片2:
根据建立的单应性对 image1 进行变形的结果是:
你可以看到结果很好变形,但是 第一部分(左侧)被剪掉了!所以拼接结果是:
参考 link 页面中上述图像的结果是:
为什么要通过单应性扭曲来削减那个?或者我做错了什么?
图片 1 没有关于场景其余部分的任何信息。由于您仅在图像 1 上应用单应性,因此它相对于图像 2 发生变形,但实际上并没有添加任何进一步的场景信息。
要获得所需的结果图像,请检查变形后图像 1 的最远 x 和 y 偏移,并将此缺失区域与拼接图像 2 一起添加。这不像加法那么简单,因为结果图像更大,但也不是太复杂。
好的!最后我可以解决 problem.I 看到 this answer 并了解导致此问题的原因以及我如何解决该问题:
The problem occurs because the homography maps part of the image to
negative x,y values which are outside the image area so cannot be
plotted. what we wish to do is to offset the warped output by some
number of pixels to 'shunt' the entire warped image into positive
coordinates(and hence inside the image area)...So just premultiply
your homography by a matrix similar to the above, and your output
image will be offset.
我跟随 Panorama – Image Stitching in OpenCV 使用 openCV4Android
在 Android 上完成了相同的任务。我的问题是关于通过建立的单应性 matrix.I 测试这些图像的扭曲图像:
图片 1:
图片2:
根据建立的单应性对 image1 进行变形的结果是:
你可以看到结果很好变形,但是 第一部分(左侧)被剪掉了!所以拼接结果是:
参考 link 页面中上述图像的结果是:
为什么要通过单应性扭曲来削减那个?或者我做错了什么?
图片 1 没有关于场景其余部分的任何信息。由于您仅在图像 1 上应用单应性,因此它相对于图像 2 发生变形,但实际上并没有添加任何进一步的场景信息。
要获得所需的结果图像,请检查变形后图像 1 的最远 x 和 y 偏移,并将此缺失区域与拼接图像 2 一起添加。这不像加法那么简单,因为结果图像更大,但也不是太复杂。
好的!最后我可以解决 problem.I 看到 this answer 并了解导致此问题的原因以及我如何解决该问题:
The problem occurs because the homography maps part of the image to negative x,y values which are outside the image area so cannot be plotted. what we wish to do is to offset the warped output by some number of pixels to 'shunt' the entire warped image into positive coordinates(and hence inside the image area)...So just premultiply your homography by a matrix similar to the above, and your output image will be offset.