如何在Python中使用OpenCV缝合器类?

2024-03-29 14:12:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

在C++示例之后,我试图将一个NUMPY数组作为第二个参数传递给CythChh(),但没有运气。


Tags: 代码importfalsefoopngbarresultcv2
1条回答
网友
1楼 · 发布于 2024-03-29 14:12:52

你用对了,因为过程因为某种原因失败了。

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

条形图.png

bar.png

结果.jpg

result.jpg

相关问题 更多 >