实时仿真四路鱼眼实现2D环视效果

本文介绍了如何利用渲染引擎搭建虚拟场景,模拟四路鱼眼相机,进行标定求得内参和外参,以及使用OpenCV库进行畸变校正和融合效果的实现过程。
摘要由CSDN通过智能技术生成

##序言:先展示下效果,随后有空总结下原理和具体代码

1:用渲染引擎搭建虚拟场景

在这里插入图片描述

2:模拟四路鱼眼

鱼眼焦距:小于16
鱼眼视距:大于120
鱼眼相机优势:显示范围广,矫正后的特征更明显
在这里插入图片描述

3:标定求内参:

相机矩阵:包括焦距(fx,fy),光学中心(Cx,Cy),完全取决于相机本身,是相机的固有属性,只需要计算一次,可用矩阵表示如下:[fx, s, Cx; 0, fy, Cy; 0,0,1];
畸变系数:

camera_matrix: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [ 229.18796013, 0., 959.2765099, 0.,
        217.59214502, 639.42341529, 0., 0., 1. ]
dist_coeffs: !!opencv-matrix
   rows: 4
   cols: 1
   dt: d
   data: [ 0.2998425,0.08655333,
         0.04872814,0.00092806 ]

4:输出四路鱼眼

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5:标定求外参

在这里插入代码片   data: [ -2.0513926287326148e-01, -1.1003402373393436e+00,
       7.9193175454376649e+02, -4.5403326443024684e-03,
       -1.1312860190554999e+00, 6.8991568409882564e+02,
       -1.0596555001414414e-05, -1.8332755853986058e-03, 1. ]

6:矫正融合效果

    cv::Mat map1, map2;
    cv::fisheye::initUndistortRectifyMap(prms.camera_matrix, prms.dist_coff, cv::Mat(), new_camera_matrix, prms.size , CV_16SC2, map1, map2);
    
    cv::remap(src, dst, map1, map2, cv::INTER_LINEAR, cv::BORDER_CONSTANT);  
    cv::warpPerspective(src, src, prm.project_matrix, project_shapes[prm.name]);

在这里插入图片描述

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值