图像算法一 —— 相机畸变及其数学模型
文章目录
- 1. 相机畸变及其数学模型
- 畸变类型
- 畸变数学模型
- 径向畸变
- 切向畸变
- 畸变数学模型总结
1. 相机畸变及其数学模型
畸变类型
相机畸变主要分为两种:
- 径向畸变(枕形、桶形):光线在远离透镜中心的地方 比 靠近透镜中心的地方 更加弯曲。
- 切向畸变:透镜不完全平行于图像平面,即sensor在安装时与镜头之间的角度不准。
畸变数学模型
径向畸变
成像仪 光轴中心的畸变为0,沿着镜头半径方向 越靠近边缘,畸变越严重。
畸变的数学模型可以用主点(principle point)周围的泰勒级数展开式的前几项来进行描述。
通常使用前两项和,即k1k_1k1和k2k_2k2
对于畸变很大的镜头,如鱼眼镜头,需要增加第三项k3k_3k3来进行描述。
成像仪上的某点,根据其在径向方向上的分布位置,调节公式为:
x0=x(1+k1r2+k2r4+k3r6)x_0=x(1 + k_1r^2 + k_2r^4 + k_3r^6)x0=x(1+k1r2+k2r4+k3r6)
y0=y(1+k1r2+k2r4+k3r6)y_0=y(1 + k_1r^2 + k_2r^4 + k_3r^6)y0=y(1+k1r2+k2r4+k3r6)
公式中:
(x0,y0)(x_0, y_0)(x0,y0)——畸变点在成像仪上的原始位置
(x,y)(x, y)(x,y)——矫正后的位置
径向畸变的偏移示意图
切向畸变
切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致
畸变可以由两个额外的参数p1p_1p1、p2p_2p2来描述:
x0=x+[2p1y+p2(r2+2x2)]x_0 = x + [2p_1y + p_2(r^2 + 2x^2)]x0=x+[2p1y+p2(r2+2x2)]
y0=y+[2p2x+p1(r2+2y2)]y_0 = y + [2p_2x + p_1(r^2 + 2y^2)]y0=y+[2p2x+p1(r2+2y2)]
大体上,切向畸变的畸变位移相对于左下——右上角的连线
是对称的,说明该镜头在垂直于该方向上有一个旋转角度。
切向畸变的偏移示意图
畸变数学模型总结
径向畸变和切向畸变中,一共有5
个畸变参数,OpenCV中他们被排列为一个5×15\times15×1的矩阵,依次包含k1k_1k1、k2k_2k2、p1p_1p1、p2p_2p2、k3k_3k3,经常被定义为Mat矩阵的形式,如Mat distCoeffs = Mat(1, 5, CV_32FC1, Scalar::all(0));
上述5
个参数就是相机标定中需要的相机的5个畸变参数,求得这5
个参数后,就可以矫正由镜头畸变引起的图像的变形失真。
图像算法一 —— 相机畸变及其数学模型相关推荐
- 相机标定(二)之相机畸变模型
一.相机畸变 定义:相机镜头的畸变实际上是光学透镜固有的透视失真的总称. 相机畸变的分类: 1.枕形畸变:又称鞍形形变,视野中边缘区域的放大率远大于光轴中心区域的放大率,常用在远摄镜头中(下图左): ...
- 【自动驾驶】27.相机畸变_相机内参标定 整理
本文整理了很多有关相机畸变博客的相关内容,都附上的原文地址,也纠正了一些其他博客的错误. 下面两张截图来自高翔博士的<视觉SLAM十四讲>书中内容. 有关添加畸变矫正以及去畸变的详细过程, ...
- 相机畸变矫正原理及代码实现
在视觉工程中,涉及到测量任务时,第一步就是对相机的畸变进行矫正.此篇博文首先对坐标系变换进行简介,之后介绍畸变矫正方法,最后给出OpenCV C++的实现代码. 目录 一.坐标系简介 1.像素坐标系 ...
- 基于OpenCV的鱼眼相机畸变矫正(含代码)
首先展示一下实现的效果: 校正前: 校正后: 本文分为两部分,一部分是介绍鱼眼相机畸变校正的原理,一部分是手撕OpenCV相机矫正代码. 文章主要结构如下图所示: 一.介绍鱼眼相机的原理 1.什么是鱼 ...
- 立体视觉 -- 相机畸变矫正(去畸变)
相机畸变矫正 在双目立体视觉中,常常会使用张正友的相机标定方法,得到相机的参数(相机内参和畸变),进而矫正由于相机透镜制造工艺等因素造成的图像畸变.在Opencv 和 Matlab 中都有封装好的函数 ...
- 【立体视觉(一)】之成像原理与相机畸变
[立体视觉(一)]之成像原理与相机畸变 一.成像原理 一)针孔模型 二)坐标系转换 1. 世界坐标系到相机坐标系 2. 相机坐标系到图像坐标系 3. 图像坐标系到像素坐标系 4. 相机坐标系到像素坐标 ...
- 相机畸变原因与去畸变原理与代码
相机畸变原因与去畸变原理与代码 相机主要有两种畸变:径向畸变和切向畸变 径向畸变由透镜形状引起的畸变: 切向畸变由相机组装过程中透镜与成像面不严格平行导致的. 一个畸变效果图: 我们能够看到位于图像边 ...
- 相机畸变校正、求出参数、具体应用
相机畸变校正.求出参数.具体应用 一.原理 二.具体步骤 三.参数获取程序代码 四.使用程序 后续版本: 畸变矫正应用封装后,耗时6ms 参数采集第二版,添加了一些异常判断和提示 参数获取程序源码 运 ...
- 一文讲透鱼眼相机畸变矫正,及目标检测项目应用
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 个人介绍 大家好,我是潘大强. 目前博士毕业4年,主要从事智能安防行业. 之前也分享过AI从业的一 ...
最新文章
- Datawhale团队第四期录取名单!
- python小练习--模拟用户登录,(3次重试机会,登录成功展示登录账号密码)
- 一家美资企业的java servlet面试题
- 在matlab中ungetfile后,11条Matlab实用小技巧
- SSM框架笔记07:初探Spring——采用XML配置文件与注解方式
- 截取数组中的第i个元素,并返回截取后的结果
- jQuery的before()方法和after()方法
- 平流式隔油池计算_隔油池计算方法及图集[参考提供]
- android-activity生命周期方法
- Kotlin实战【五】Kotlin中的异常
- 什么是多径效应?多径效应怎么消除?多径效应解决方法
- 数据统计获取一年 有多少个自然周,起止时间,当前是第几个周
- 网银“交易密码丢失U盾作废”引质疑
- java马里奥_java马里奥毕业设计
- Guided Anchoring
- Linux内核设计与实现 第17章 设备与模块
- Context Menus
- 人才辈出各领风骚 中国股市十大操盘手排行榜
- 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——1.3 将下载的MIDI歌曲制作成MIDI音乐伴奏...
- appium自动化实例