基于环视鱼眼相机的全景拼接

本文主要记录基于环视鱼眼相机的全景拼接过程中遇到的问题及其解决思路
代码来源:https://github.com/Leooncode/surround-view-system-introduction/blob/master/doc/doc.md
1、针对多个鱼眼相机连接问题
鱼眼相机为USB摄像头,与网络摄像头采集方式不同,具体修改为:
在这里插入图片描述
对于USB摄像头无需使用gst,gst是针对csi摄像头的,因此直接调用cap读取即可。

2、bug解决:cv2.error: OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\calib3d\src\fisheye.cpp:1488: error: (-3:Internal error) CALIB_CHECK_COND - Ill-conditioned matrix for input array 0 in function ‘cv::internal::CalibrateExtrinsics’
cv2.error: OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\calib3d\src\fisheye.cpp:1488: error: (-3:Internal error) CALIB_CHECK_COND - Ill-conditioned matrix for input array 2 in function ‘cv::internal::CalibrateExtrinsics’

该问题主要是棋盘格标定点远多于预设的点,导致计算雅可比方程时出现冗余。
解决方法1:最大限度的识别标定板上的角点,除了最外围的棋盘格,尽量让内部点全部被识别到即可。
解决方法2:
在这里插入图片描述
禁用掉calibration_flags,设置一个flags=0替代它即可解决。
解决方法3:
自己代码里大概率有CALIB_CHECK_COND这个限制flag,直接删除该flag即可(亲测有效,推荐)!

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
鱼眼环视图像拼接是指将鱼眼摄像头拍摄的多张图像拼接全景图像的过程。在Python中,你可以使用OpenCV库来实现鱼眼图像的处理和拼接。 首先,你需要安装OpenCV库。你可以使用以下命令来安装: ``` pip install opencv-python ``` 接下来,你可以按照以下步骤进行鱼眼环视图像拼接: 1. 导入所需的库: ```python import cv2 import numpy as np ``` 2. 读取鱼眼图像: ```python image1 = cv2.imread('image1.jpg') # 读取第一张图像 image2 = cv2.imread('image2.jpg') # 读取第二张图像 # 读取更多的图像... ``` 3. 将鱼眼图像转换为等距投影图像: ```python K = np.array([[focal_length, 0, image_width/2], [0, focal_length, image_height/2], [0, 0, 1]]) # 相机内参矩阵 D = np.array([k1, k2, p1, p2]) # 相机畸变参数 map1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3), K, (image_width, image_height), cv2.CV_16SC2) undistorted_image1 = cv2.remap(image1, map1, map2, interpolation=cv2.INTER_LINEAR) undistorted_image2 = cv2.remap(image2, map1, map2, interpolation=cv2.INTER_LINEAR) # 转换更多的图像... ``` 4. 进行图像拼接: ```python stitcher = cv2.Stitcher_create() # 创建拼接器对象 result, panorama = stitcher.stitch([undistorted_image1, undistorted_image2]) # 进行图像拼接 # 拼接更多的图像... ``` 5. 显示拼接结果: ```python cv2.imshow('Panorama', panorama) # 显示全景图像 cv2.waitKey(0) cv2.destroyAllWindows() ``` 以上是一个基本的鱼眼环视图像拼接的示例。你可以根据自己的需求进行调整和扩展。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值