所以我正试图为我的大学毕业项目生成鸟瞰图,我已经成功地完成了:
- 校准鱼眼相机并使其不受干扰(我使用四个相机,右、左、前、后(
- 使用先验变换为四帧中的每一帧生成鸟瞰图
现在我需要将它们缝合在一起,有人知道如何实现吗?我正在使用python和OpenCv。我试着使用stitcher类,但它不起作用:
stitcher = cv2.Stitcher.create(cv2.Stitcher_PANORAMA)
(status,result) = stitcher.stitch(warped) # warped is a list containing 4 images
if (status == cv2.STITCHER_OK):
print('Panorama Generated')
else:
print('Panorama Generation Unsuccessful')
总是不成功
我认为在这种情况下,cv2.Stitcher
返回状态=1(ERR_NEED_MORE_IMGS
(,因为它无法估计图像之间的变换。
由于BEV图像看起来可能与缝合器要操作的标准图像大不相同,因此可能需要调整类暴露的各种参数。例如,您可以尝试将置信阈值降低到某个值<1:stitcher.setPanoConfidenceThresh(0.0)
。
如果你发布BEV图片(也就是说,它们能匹配吗?(,这也会有所帮助。
顺便说一句:如果你把图像转换成BEV,那么你可能已经有了相机的外特性(旋转和平移(。这足以创建一个共享BEV;虚拟的";相机在原点。Stitcher::stitch
涉及相当多的步骤——特征检测、匹配、变换估计、束调整、混合。大多数步骤都用于查找图像的转换,您应该已经知道了。所以在这里使用它有点过头了。