首页 > 其他分享 >鱼眼相机成像模型

鱼眼相机成像模型

时间:2023-06-02 10:58:58浏览次数:30  
标签:函数 模型 鱼眼 投影 相机 成像

目录

1.针孔模型

普通光学镜头采用的是最简单的针孔投影模型,根据相似成像原理,针孔模型透视投影函数为

f 表示为成像平面到投影中心的距离,θ 表示入射光线和光轴之间的夹角,ru 为投影点到图像中心的距离,如下图

2.鱼眼相机的成像过程

普通相机成像遵循的是针孔相机模型,在成像过程中实际场景中的直线仍被投影为图像平面上的直线。但是鱼眼相机如果按照针孔相机模型成像的话,投影图像会变得非常大,当相机视场角达到180°时,
图像甚至会变为无穷大。所以,鱼眼相机的投影模型为了将尽可能大的场景投影到有限的图像平面内,允许了相机畸变的存在。
并且由于鱼眼相机的径向畸变非常严重,所以鱼眼相机主要的是考虑径向畸变,而忽略其余类型的畸变。

3.鱼眼相机的投影函数

为了将尽可能大的场景投影到有限的图像平面内,鱼眼相机会按照一定的投影函数来设计。根据投影函数的不同,鱼眼相机的设计模型大致能被分为四种:

  • 等距投影模型
  • 等立体角投影模型
  • 正交投影模型
  • 立体投影模型
    如下表

    直线投影(Rectilinear)或者说透视投影(Perspective)相当于小孔成像,我们可以认为这种投影并没有产生畸变。然而,从其投影函数可以看出,当入射角趋近于90度时,其在图像平面上的落点将趋近于无穷远,
    所以不能作为超广角镜头的投影模型。

3.1 等距投影模型


投影函数为

3.2 等立体角投影模型


投影函数为

3.3 正交投影模型


投影函数为

3.4 立体投影模型


投影函数为

4.OpenCV中的鱼眼相机模型

OpenCV中使用的模型是由Kannala提出的一种鱼眼相机的一般近似模型。在等距投影模型的基础上提出来的。下面来详细分析其鱼眼相机模型的提出过程。
我们可以将鱼眼相机模型的形式统一以等距投影模型的形式来表示,即

对实际的鱼眼镜头来说,它们不可能精确地按照投影模型来设计,所以为了方便鱼眼相机的标定,Kannala提出了一种鱼眼相机的一般多项式近似模型。
通过前面的四个模型,可以发现 θd是θ的奇函数,而且将这些式子按泰勒级数展开,发现 θd可以用θ的奇次多项式表示,即

现在常用的是opencv的fisheye模型,参考opencv官方文档

标签:函数,模型,鱼眼,投影,相机,成像
From: https://www.cnblogs.com/vivian187/p/17451114.html

相关文章

  • 使用kalibr做相机内参标定时,报错:“ImportError: No module named igraph”
    这是因为电脑没有安装python的igraph库,所以需要安装igraph库。1.sudoapt-getinstall-ylibigraph0-dev 2.pipinstallpython-igraph==0.7.1.post6(python2只支持0.8X以前的版本)安装完毕,执行kalibr相机内参标定命令即可。 ......
  • 相机位姿比较
    单个相机旋转矩阵计算运动范围是否太大doublenormofTransform(cv::Matrvec,cv::Mattvec){returnfabs(min(cv::norm(rvec),2*M_PI-cv::norm(rvec)))+fabs(cv::norm(tvec));}计算旋转向量和平移向量的范数的函数:其中,旋转向量用rvec表示,平移向量用tvec表示。具体的,用......
  • Cesium将相机定位到指定的位置
    使用Cesium的viewer.camera.flyTo方法将相机定位到指定的位置,并设置相机的方向和倾斜角。viewer.camera.flyTo({//摄像机在WGS84(世界)中的最终位置坐标或从自上而下的视图中可以看到的矩形destination:Cesium.Cartesian3.fromDegrees(113,23,8000.0),//包含方向和......
  • ROS单目相机标定 ------ 亲测
    camera_calibration/Tutorials/MonocularCalibration-ROSWiki说明:本教程介绍使用camera_calibration的cameracalibrator.py节点在ROS上使用原始图像校准单目相机。 1.在开始之前确保您具备以下条件:具有已知尺寸的大型棋盘。本教程使用108毫米正方形的6*4棋盘。校准使用......
  • 《安富莱嵌入式周报》第312期:开源磁场照相机,仿生神经元PCB,开源无线耳机,手机系统PalmOS
    更新一期视频教程:BSP视频教程第26期:CAN/CANFD/CANopen专题,CANFD整个运行机制精讲,图文并茂,配合综合实战演练(2023-05-15)https://www.armbbs.cn/forum.php?mod=viewthread&tid=119189视频版:https://www.bilibili.com/video/BV1zL41167Ti 1、基于开放系统组装协议OSAP实现的简化硬件设......
  • 对于相机调用和相册调用的优化以及定位地址进行识别优化
    第一阶段已经实现了,但是由于过于匆忙,导致实现bug过多,如识别优化利用外部类进行实现,内部也进行实现,相机功能与手机不匹配,每一次运行需打开储存权限,今天进行了优化,将代码简化,同时套用《第一行代码》的相机调用与相册调用的,进行修改。实验阶段:将代码在新一个activity内进行书写,最后......
  • CCD相机的使用
    这里我使用大相机对塔式聚光器上的光斑进行了拍摄,将该长焦相机的使用方式进行整理。首先,大相机如下图所示。该长焦相机有两个连接线,一条是网线,连接到电脑上的,另一个则是电源线,相机上有两个调整焦距的旋转装置,下面是大调,上面是微调。我用三脚架,快装板固定好该相机,为了让其稳......
  • yolov5 海康相机 工业视觉 海康相机采集的图片使用yolov5进行目标
    yolov5海康相机工业视觉海康相机采集的图片使用yolov5进行目标检测,yolov5推理使用c++封装dll,调用海康sdk进行图像采集,支持MFC,qt,labview等调用ID:251200667811628660......
  • yolov5 yolov5_obb rotate 旋转目标检测 C/C++ 支持同时多相机和多模型
    yolov5yolov5_obbrotate旋转目标检测C/C++支持同时多相机和多模型windowsvs2019封装dll,一个dll,支持同模型多次加载和不同模型同时多次加载,支持mfc,和qt调用,支持批量图片识别,Demo支持图片、视频、文件夹和RTSP流识别。ID:143000668549326309......
  • 基于显扬科技3D视觉相机的医疗试管分拣系统
    Part.1 行业现状医疗试管分拣是医疗行业中的一个重要环节,指将医疗实验室或生物技术研究中的试管按照一定的规则进行分拣,并对试管的类型、位置、数量等信息进行识别和管理。随着医疗技术的不断发展和诊断治疗的精细化,医疗试管分拣的需求也不断增加。传统的试管分拣是由人工操作来完......