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

2024-06-11 07:46:57 发布

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

再见

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

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)

图像输入是:

左图:

left image

右图:

right image

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


Tags: 项目图像imgpngresultfilenamecv2摄像头
1条回答
网友
1楼 · 发布于 2024-06-11 07:46:57

图像缝合操作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:通常与无法从输入图像中正确估计相机特征有关。在

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

相关问题 更多 >