繁体   English   中英

如何在 Python 中使用 OpenCV Stitcher 类?

[英]How to use OpenCV Stitcher class with Python?

我正在尝试将 OpenCV Stitcher 类与 Python 一起使用,但没有成功。 我的代码是:

import cv2
stitcher = cv2.createStitcher(False)
foo = cv2.imread("foo.png")
bar = cv2.imread("bar.png")
result = stitcher.stitch((foo,bar))

我得到一个元组 (1, None)。

按照 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

foo.png

酒吧.png

酒吧.png

结果.jpg

结果.jpg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM