一、鱼眼相机输入原图示例


以该图像作为输入示例进行说明。

二、经纬度展开方法

由于目的是将该图转为环视图,因此 将图像想象为一个地球仪,图像中心看作为南/北极进行展开,即:图像中心会进行向两侧拉伸。(具体可找一个地球仪和世界地图平面图进行对比)。
也可以根据具体场景按照图片顶点或指定点进行两侧拉伸。

三、矫正效果图

矫正后的图像如下所示。

可以看到,图像中心进行拉伸后,畸变较大,而图像顶端也存在不同程度畸变。

四、相关步骤及代码

  1. 按照以下代码,遍历鱼眼图像上下左右所有区域
for (int i=0 ;i< inputOut.rows -1;i++){for (int j=0; j<inputOut.cols -1; j++){uchar I = 0.59*inputOut.at<Vec3b>(i,j)[0] + 0.11*inputOut.at<Vec3b>(i,j)[1] + 0.3*inputOut.at<Vec3b>(i,j)[2];if (I > 20){I = 0.59*inputOut.at<Vec3b>(i+1,j)[0] + 0.11*inputOut.at<Vec3b>(i+1,j)[1] + 0.3*inputOut.at<Vec3b>(i+1,j)[2];if (I > 20){ntop = i;nflag = 1;break;}}}if (nflag ==1){break;}}
  1. 获取遍历图像后的半径
    注意:由于图像遍历效果不一定好,这里可以手动调整半径值。
int d = min(nright-nleft,nbottom-ntop);
  1. 建立映射表
Mat map_x,map_y;map_x.create( imgRoi.size(), CV_32FC1 );map_y.create( imgRoi.size(), CV_32FC1 );for (int j=0; j< d-1;j++){for (int i=0; i< d-1; i++ ){map_x.at<float>(i,j) = static_cast<float>( d/2.0 + i/2.0*cos(1.0*j/d*2*CV_PI));map_y.at<float>(i,j) = static_cast<float>( d/2.0 + i/2.0*sin(1.0*j/d*2*CV_PI));}}
remap(imgRoi, dst, map_x, map_y, CV_INTER_LINEAR, BORDER_CONSTANT, Scalar(0,0,0));
  1. 最后保存矫正后的图像,OK!
imwrite("dst-frame.jpg",dst);

五、相关理论及推导

  1. 鱼眼镜头成像原理
  2. 构造矩形,拟合圆心和半径
  3. 转换过程示意图
  4. 畸变图像到视球面的转化

    具体内容可见这篇论文: [1]张军, 王志舟, 杨正瓴. 单幅圆形鱼眼图像的校正[J]. 计算机应用, 2015.

鱼眼相机矫正,按经纬度展开为环视图相关推荐

  1. 自动驾驶之车位线检测之二单路鱼眼相机矫正裁剪(python ,C++,opencv)

    前篇博文https://blog.csdn.net/xiao__run/article/details/89190112涉及到了使用四路鱼眼图像拼接并识别车位线,这个过程涉及到鱼眼图像的标定,矫正以及 ...

  2. 鱼眼相机相关知识及其标定矫正

    首先列一下参考资料: Fisheye camera model 鱼眼相机标定以及OpenCV实现 鱼眼相机畸变矫正的汇总链接 鱼眼相机成像模型 鱼眼相机矫正原理 鱼眼相机畸变矫正的总结 鱼眼镜头的选型 ...

  3. 一文讲透鱼眼相机畸变矫正,及目标检测项目应用

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 个人介绍 大家好,我是潘大强. 目前博士毕业4年,主要从事智能安防行业. 之前也分享过AI从业的一 ...

  4. VS2019+OpenCV4.5 鱼眼相机图像畸变矫正

    一.鱼眼相机概述 鱼眼镜头是定焦镜头中的一种视野范围很大的镜头,它视角范围通常大于等于180度.鱼眼相机虽然能获得较大的视角范围,但是其拍摄的图像存在较大的畸变,为了后续任务的需要,往往需要对原始图像 ...

  5. 基于OpenCV的鱼眼相机畸变矫正(含代码)

    首先展示一下实现的效果: 校正前: 校正后: 本文分为两部分,一部分是介绍鱼眼相机畸变校正的原理,一部分是手撕OpenCV相机矫正代码. 文章主要结构如下图所示: 一.介绍鱼眼相机的原理 1.什么是鱼 ...

  6. Intel RealSense T265鱼眼相机图像获取并矫正畸变(Unity)

    1.添加RsDevice: 2.设置开启鱼眼相机: 3.新建RsStreamTextureRendererFisheye.cs和Fisheye.shader: using Intel.RealSens ...

  7. 【CV】鱼眼相机模型与畸变矫正(Fisheye Camera Model Calibration)

    文章目录 鱼眼镜头 鱼眼名称的由来 鱼眼镜头的实现 鱼眼相机的成像模型 鱼眼图像的矫正 Ref 鱼眼镜头 鱼眼镜头长这样 #鱼眼镜头成像样张 拍出来的照片长这样 鱼眼名称的由来 之所以叫鱼眼,是因为仿 ...

  8. 鱼眼相机的成像模型与畸变校正

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨11号线人 来源丨十一号组织 "800万像素","250m测距能力 ...

  9. 鱼眼相机中基于平面假设的光心偏移校正

    这篇文章主要是对 Hugin 开源软件中 <libpano/math.c> 的 plane_transfer_to_camera() 和 plane_transfer_from_camer ...

  10. 一文尽览 | 计算机视觉中的鱼眼相机模型及环视感知任务汇总!

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复[ECCV2022]获取ECCV2022所有自动驾驶方向论文! 论文 ...

最新文章

  1. IBM虚拟化石油行业成功案例分享
  2. 吴恩达演讲直指AI落地三大挑战,并提出解决方案(附视频)
  3. ORACLE数据库备份
  4. 两个页面的公共的文件怎么只引入一次_vuecli 多页面之公共入口
  5. volatile怎么实现的内存可见?附面试题答案
  6. Vim YouCompleteMe 安装配置
  7. android 类似按键精灵脚本_按键精灵【第一期】教你 0 基础学写脚本 ———— 【金猪教程】...
  8. JQuery绑定事件 时如何传递参数
  9. 高速信号传输约翰逊 pdf_高速串口技术如何突破板级连接限制
  10. 开源MySQL数据传输中间件—DTLE
  11. mysql insert优化_如何优化MySQL insert性能
  12. java代码怎么动态修改xml配置文件内容_[MyBatis]-MyBatis框架-05-动态sql
  13. Spring已集成jsp的环境下同时集成Velocity
  14. 读书笔记:数学分析新讲第一册
  15. traceview使用总结
  16. 去除水印-Teorex Inpaint 序列号
  17. set的用法及短语_set的短语
  18. 使用BenchMarkSQL测试openGauss
  19. 基于深度强化学习的电子商务平台动态定价
  20. word中公式添加序号后字体变小问题的解决方案(2010和2016两个版本)

热门文章

  1. oracle cogs 科目,CFA一级财报科目:现金流量表详情介绍!
  2. oracle得oem,Oracle--OEM与常见故障处理
  3. python考试报名官网安徽_2019年3月安徽宿州学院全国计算机等级考试报名通知
  4. python摩尔庄园自动弹琴
  5. Android 4.4 播放器,视频播放器(高清版)
  6. 【分享】李涛ps入门教程视频全集及精心整理包含素材
  7. java url解码_URL的编码和解码
  8. SSIM公式:结构相似性计算原理,基于SSIM的图像质量评价
  9. weka mysql_weka连接mysql数据库
  10. spark机器学习电影推荐