当前位置:  开发笔记 > 编程语言 > 正文

如何在Python中使用OpenCV Stitcher类?

如何解决《如何在Python中使用OpenCVStitcher类?》经验,为你挑选了1个好方法。

我正在尝试使用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()而没有运气.



1> Gwen..:

你正确使用它,因为某些原因导致进程失败.

结果元组的第一个值是错误代码,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

foo.png

bar.png

bar.png

result.jpg

result.jpg


这是考拉熊!在第163行导致错误的错误似乎也在OpenCV 3.3.0中得到解决.谢谢你写得很好的答案.
推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有