我正在尝试使用Python的OpenCV Stitcher类,没有运气.我的代码是:
import cv2 stitcher = cv2.createStitcher(False) foo = cv2.imread("foo.png") bar = cv2.imread("bar.png") result = stitcher.stitch((foo,bar))
我得到一个元组(1,无).
在C++示例之后,我尝试将一个numpy数组作为第二个参数传递给stitch()而没有运气.
你正确使用它,因为某些原因导致进程失败.
结果元组的第一个值是错误代码,0表示成功.在这里你得到1,这意味着,根据stitching.hpp
这个过程需要更多的图像.
enum Status { OK = 0, ERR_NEED_MORE_IMGS = 1, ERR_HOMOGRAPHY_EST_FAIL = 2, ERR_CAMERA_PARAMS_ADJUST_FAIL = 3 };
ERR_NEED_MORE_IMGS
通常表示您的图像中没有足够的关键点.
如果您需要有关错误发生原因的更多详细信息,可以切换到C++并详细调试该过程.
编辑:提供工作示例
与OP相同的代码,只添加了结果保存和绝对路径.
import cv2 stitcher = cv2.createStitcher(False) foo = cv2.imread("D:/foo.png") bar = cv2.imread("D:/bar.png") result = stitcher.stitch((foo,bar)) cv2.imwrite("D:/result.jpg", result[1])
用这些图像:(我希望你爱大熊猫)
foo.png
bar.png
result.jpg