在 openCV warpPerspective 中,如何转换左侧图像并将其拼接到右侧图像?

Posted

技术标签:

【中文标题】在 openCV warpPerspective 中,如何转换左侧图像并将其拼接到右侧图像?【英文标题】:In openCV warpPerspective, how do I transform the left image and stitch it to the image on the right? 【发布时间】:2020-01-19 19:05:56 【问题描述】:

我正在尝试通过执行 SIFT->KNN->warpPerspective 使用 OpenCV 进行图像拼接。关于如何将右侧的图像变形以缝合到左侧的目的地,有很多资源。我已经尝试计算单应矩阵以将左图像扭曲到右侧,这似乎有效。问题是,我无法将图像与 cv2.warpPerspective 拼接在一起,因为如果右侧图像变形,它似乎会将图像放在应有的位置。

我的代码基本上是:

result = cv2.warpPerspective(left, H, (left.shape[1] + right.shape[1], left.shape[0])
result[0:right.shape[0], result.shape[1]-right[1]:] = right

但这会导致图像偏移向右移动。如何正确拼接图像?

【问题讨论】:

我不清楚您所说的问题。您能否进一步解释和/或展示图表或图像。 【参考方案1】:

首先,您应该调整图像的大小并将它们放在一个更大的图像中,每个图像 outer_x= image_x*5outer_y= image_y*3

outer_x= image_x*5
outer_y= image_y*3
result = cv.warpPerspective(left_image, H, (outer_x, outer_y))
result[:, x_img * 2 : x_img*3] = right_image[j][:, x_img * 2 : x_img*3]

【讨论】:

【参考方案2】:

是的,看起来有很多资源可以将右侧的图像扭曲到左侧的目的地。然而,如果我们想做与此相反的操作,即转换左侧图像并将其拼接到右侧图像,我们可以简单地翻转两个图像,然后将右侧的图像扭曲以缝合到左侧的目的地,然后然后可以将结果翻转回来。这将等效于转换左侧图像并将其拼接到右侧图像。

【讨论】:

以上是关于在 openCV warpPerspective 中,如何转换左侧图像并将其拼接到右侧图像?的主要内容,如果未能解决你的问题,请参考以下文章

在 openCV warpPerspective 中,如何转换左侧图像并将其拼接到右侧图像?

在perspectiveWarp/warpPerspective 之后Android-Android OpenCV 得到空白(黑色)图像?

如何使用 OpenGL 模拟 OpenCV 的 warpPerspective 功能(透视变换)

与 OpenCV findHomography 和 warpPerspective 混淆

初学opencv c++学习笔记透视变换--warpPerspective()

利用OpenCV的函数warpPerspective()作图像的透视变换