首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cv2.createStitcher()没有足够的关键点?

问cv2.createStitcher()没有足够的关键点?
EN

Stack Overflow用户
提问于 2018-07-02 11:33:02
回答 2查看 2.6K关注 0票数 3

我正在从事一个项目,有多个相机,每个采取一个图像,然后图像将被缝合在一起。目前我正在尝试使用cv2.createStitcher().stitch(images)函数。下面是我使用的代码:

代码语言:javascript
复制
import cv2

imageFiles = ['imageCapture1_0.png','imageCapture2_0.png']
images = []
for filename in imageFiles:
    img = cv2.imread(filename)
    images.append(img)

cv2.ocl.setUseOpenCL(False)
stitcher = cv2.createStitcher()
status, result = stitcher.stitch(images)             

cv2.imwrite('result.png',result)

图像输入为:

左图:

​

​

右图:

​

​

但是,结果输出类型变为大小为1、值为:内置模块的NoneType对象的NoneType。根据我在谷歌上搜索的结果,这是因为没有足够的匹配关键点来将图像缝合在一起。如果是这样,有没有一种方法可以用更少的关键点来拼接图像?有没有办法设置参数?我通读了文档,但没有找到解决方案。提前谢谢你

EN

回答 2

Stack Overflow用户

发布于 2019-03-29 06:37:45

图像拼接操作status, result = stitcher.stitch(images)返回两个值,一个状态指示符和得到的拼接图像。您可以通过检查status的值来判断拼接是否成功。在文档中,它可以是以下四个变量之一:

OK = 0:图像拼接成功。

ERR_NEED_MORE_IMGS = 1:在输入图像中检测到的关键点不足,无法构建全景图。您将需要更多的输入图像。

ERR_HOMOGRAPHY_EST_FAIL = 2:当RANSAC单应性估计失败时,会出现此错误。同样,您可能需要更多的输入图像,或者提供的图像没有足够的区分特征来精确匹配关键点。

ERR_CAMERA_PARAMS_ADJUST_FAIL = 3:通常与未能从输入图像正确估计相机特征有关。

根据您的情况,您可以添加更多的输入图像,以便检测到足够的关键点,或者您可以查看自己的实现。

票数 3
EN

Stack Overflow用户

发布于 2020-06-10 16:24:30

我复制并运行了你的代码。它工作得很好。

Left Image

Right Image

Result

我认为这个函数在你的图片中找不到足够的匹配点。在另一组图片中尝试此代码可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51128826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档