使用Python拼接图像

4
我想使用python拼接多个(5或6)图像。虽然我对python还不够熟悉,但我希望使用这种技术,因为它在服务器上运行且是开源的。OpenCV似乎非常适合这项任务,也是我的首选,但大部分函数都是用C++编写的,我无法找到用Python实现的例子(尽管应该是可行的)。我找到了此链接:http://richardt.name/teaching/supervisions/vision-2011/practical/,但我认为我自己做不出来这个练习。
我还了解到了很多关于panotools和Hugin的信息。据说Hugin可以使用HSI(Hugin脚本接口)来进行拼接,但文档非常有限。我找到的示例可能会起作用,但我无法让Hugin和HSI在Python中运行,也没有关于安装/导入库的说明。
有人能帮我吗?我之前一直在用php编程,对Python、OpenCV和Hugin都很陌生。
非常感谢!

可能是拼接照片的重复问题。 - Jayanth Koushik
1
我也看到了那篇帖子,但是那篇帖子只是想把两张图片放在一起,而不涉及混合和良好拟合的问题。而我的情况是我想从两张照片中制作全景照片。 - Yorian
Hugin需要用户在重叠的照片之间识别共同点。如果使用Python编程,您打算如何自动化这个过程? - unutbu
摄像头是静态的。它们始终在同一位置。因此,我会手动选择一次点,然后对于未来的图像,这些点将是相等的。但我更喜欢使用OpenCV(或PIL),但我不知道是否有人可以帮助我完成这个任务。 - Yorian
看起来Hugin的脚本接口可能可以满足你的需求。 - unutbu
2个回答

1
如果您不必使用Python,仅使用Hugin即可完成此操作。在此处查看相关命令。这是一个示例,您可以直接从终端运行:
$ cd to/your/images
$ pto_gen -o project.pto *.jpg
$ cpfind --multirow -o project.pto project.pto
$ celeste_standalone -i project.pto project.pto
$ hugin_executor --stitching --prefix=my_panorama project.pto

我对3个镜头进行了快速的合理性检查,看起来很合理。我正在使用hugin 2016.0.0。


-1

我认为这是你想要的代码

import cv2
import numpy as np

img1 = cv2.imread('Bird1.jpg')
img2 = cv2.imread('Bird2.jpg')

img3 = np.hstack((img1,img2))
cv2.imwrite('Bird3.jpg',img3)

注意:这两个输入图像的尺寸(高度,宽度)应该相同。
输入图像:

enter image description here


输出图像:
在此输入图像描述


谢谢您的回复。这只是将两个图像并排放置。然而,我想制作全景照片。 - Yorian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接