立体视觉 -- 相机畸变矫正(去畸变)
相机畸变矫正
在双目立体视觉中,常常会使用张正友的相机标定方法,得到相机的参数(相机内参和畸变),进而矫正由于相机透镜制造工艺等因素造成的图像畸变。在Opencv 和 Matlab 中都有封装好的函数或者标定工具箱供我们使用,可以利用这些标定得到的数据进行畸变矫正。
重点来了!!!怎么自己编写呢?且看下方讲解。。
- 内参矩阵
A = [fx, 0, cx; 0, fy, cy; 0, 0, 1]
- 畸变系数
D = [k1, k2, p1, p2, k3](通常没有k3)
- 参数说明
fx = f/dx;
fy = f/dy;
1、dx和dy是相机单个感光单元芯片的长度和宽度,是一个物理尺寸,有时候会有dx=dy,这时候感光单元是一个正方形;
2、cx和cy分别代表相机感光芯片的中心点在x和y方向上可能存在的偏移;
3、f代表相机的焦距;
4、k1, k2, k3为径向畸变系数;
5、p1, p2为切向畸变系数。
- 去畸变步骤
1、先将图像像素坐标系转换到相机坐标系
x_w = (x-cx)/fx;
y_w = (y-cy)/fy;
2、在相机坐标系中做去畸变
r = x_w^2 + y_w^2;
x_w1 = x_w*(1 + k1*r + k2*r^2 + k3*r^3) + 2*p1*x_w*y_w + p2*(r + 2*x_w^2);
y_w1 = y_w*(1 + k1*r + k2*r^2 + k3*r^3) + 2*p2*x_w*y_w + p1*(r + 2*y_w^2);
3、去畸变后重新将相机坐标系转换到图像像素坐标系
x_p = x_w1*fx + cx;
y_p = y_w1*fy + cy;
4、使用源图像对新图像插值
w = x_p;
h = y_p;
I1(y, x) = ([w+1]-w)*([h+1]-h)*I([h],[w])+
([w+1]-w)*(h-[h])*I([h+1],[w])+
(w-[w])*([h+1]-h)*I([h],[w+1])+
(w-[w])*(h-[h])*I([h+1],[w+1])+
注:[]表示取整,I1为矫正后图像,I为源图像。
- 矫正结果
矫正前后图像(左:源图像;右:校正后图像)
立体视觉 -- 相机畸变矫正(去畸变)相关推荐
- 相机模型与去畸变方法详解
相机与图像模型 一.针孔相机模型 1.1 成像原理 1.2 实际坐标与像素坐标的关系 1.3 如何获得实际坐标 二.畸变相机模型 2.1 两种常见畸变的介绍 2.2 去畸变方法 2.3 示例程序 相机 ...
- unity 畸变_去畸变过程中内参矩阵的变化
OpenCV中去畸变的方法一种是:通过cv::getOptimalNewCameraMatrix()得到新的内参矩阵,再通过cv::initUndistortRectifyMap()得到原图和去畸变后 ...
- 机器视觉-相机标定及畸变矫正
摘要:本文首先介绍了针孔相机模型(线性模型),然后推导四个坐标轴变换的关系,引出R.T.K.D中包含相机的5个内参,6个外参.然后介绍相机畸变的原因以及畸变模型(非线性模型),引出相机的5个畸变参数. ...
- OpenCV 【十一】—— 图像去畸变,对极约束之undistort,initUndistortRectifyMap,undistort
目录 0.极限约束,对极校正 1.摄像机成像原理简述 2.成像畸变 2.1. 畸变数学模型 2.2. 公式推导 3.畸变校正 3.1. 理论推导 4. 图像去畸变** 5. 图像尺度缩放与内参的关系* ...
- 多摄像机标定和去畸变
Table of Contents 1.kalibr多摄像机标定 1.1 系统安装,环境配置:实测Ubuntu 16.04 1.2 多摄像机标定 2.OpenCV双目标定 3.Matlab多摄像机标定 ...
- python opencv实践 图像去畸变
目录 前言 镜头成像畸变原因 去畸变方法 python去畸变 输入 代码 结果 前言 由于相机的镜头并不完全理想,成像时会产生线条扭曲.失真等.对双目图像.鸟瞰图等进行处理时,首先要矫正去畸变. 镜头 ...
- 计算机视觉:Opencv图像去畸变
计算机视觉:Opencv图像去畸变 针孔相机模型图像去畸变 方法一 方法二 区别与联系 鱼眼相机模型图像去畸变 方法一 方法二 区别与联系 参考文献 针孔相机模型图像去畸变 针对畸变参数,k1,k2, ...
- 从普通相机模型到鱼眼畸变模型--标定与去畸变
目录 普通相机模型 普通成像模型 针孔模型与透镜组: 径向畸变 切向畸变 现代手机摄像头的基本组成 内参矩阵 畸变模型 张氏标定法 鱼眼模型 透镜组 r和f的进一步说明 等距投影模型(OpenCV:: ...
- slam去畸变(径向畸变)
目录 畸变 径向畸变 切向畸变 去畸变原理 代码 参考 畸变 产生原因:透镜不能完全满足针孔模型假设 径向畸变 畸变程度都是从中心开始,用一个半径画圆的话,半径越大,圆周上的畸变程度也越大.这个就是由 ...
最新文章
- go语言中fmt包中Print、Printf、Println输出相关函数的区别
- Keil 出现Debug Error! DAMAGE:after Normal block
- 安装慢_Origin平台安装更新慢的解决办法
- SSDP:DDoS***的“新宠”
- 微信小程序 图片显示不完全
- MySQL基础 - 简单查询
- 矩阵分析L3内积空间
- c语言0x前缀的作用,有趣的问题,C语言程序中,为什么十六进制数字以前缀0x开头呢?...
- 读《大四学生收到英国诺丁汉大学博士录取通知书》想到
- orcal复习及作业
- 基于SVM的数据分类预测——意大利葡萄酒种类识别
- UCK Network 全球路演广州站 UCK通证全球首发上线引关注热潮
- 天翼物联获2022年移动物联网“先进企业”
- charles的简介、安装、破解及使用教程
- 微信小程序的登录过程简介
- 小程序直播带货系统优势—直播带货的技巧
- 诺基亚N900安装Android 2.2改版系统Nitdroid教程
- StorageClass
- 使用期望等待一次性事件
- Python之text()函数用法:plt.text()
热门文章
- RK3288平台下调屏参基本步骤
- IBus Pinyin 导入Sougou词库
- 【write up】2021春秋杯-BabySteg
- 网易云音乐每日歌曲推荐的原理是什么?
- java8流转数组_Java8 教程第八章之Array to Stream
- 叶子提取物的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 如何优雅判断属性值为空
- JS入门到入土之数字运算符扩展
- python close_wait_服务器TIME_WAIT和CLOSE_WAIT分析和解决办法
- 拼多多2021高频题汇总 | 备战春招,刷这30题就够了!