相机畸变矫正

在双目立体视觉中,常常会使用张正友的相机标定方法,得到相机的参数(相机内参和畸变),进而矫正由于相机透镜制造工艺等因素造成的图像畸变。在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 成像原理 1.2 实际坐标与像素坐标的关系 1.3 如何获得实际坐标 二.畸变相机模型 2.1 两种常见畸变的介绍 2.2 去畸变方法 2.3 示例程序 相机 ...

  2. unity 畸变_去畸变过程中内参矩阵的变化

    OpenCV中去畸变的方法一种是:通过cv::getOptimalNewCameraMatrix()得到新的内参矩阵,再通过cv::initUndistortRectifyMap()得到原图和去畸变后 ...

  3. 机器视觉-相机标定及畸变矫正

    摘要:本文首先介绍了针孔相机模型(线性模型),然后推导四个坐标轴变换的关系,引出R.T.K.D中包含相机的5个内参,6个外参.然后介绍相机畸变的原因以及畸变模型(非线性模型),引出相机的5个畸变参数. ...

  4. OpenCV 【十一】—— 图像去畸变,对极约束之undistort,initUndistortRectifyMap,undistort

    目录 0.极限约束,对极校正 1.摄像机成像原理简述 2.成像畸变 2.1. 畸变数学模型 2.2. 公式推导 3.畸变校正 3.1. 理论推导 4. 图像去畸变** 5. 图像尺度缩放与内参的关系* ...

  5. 多摄像机标定和去畸变

    Table of Contents 1.kalibr多摄像机标定 1.1 系统安装,环境配置:实测Ubuntu 16.04 1.2 多摄像机标定 2.OpenCV双目标定 3.Matlab多摄像机标定 ...

  6. python opencv实践 图像去畸变

    目录 前言 镜头成像畸变原因 去畸变方法 python去畸变 输入 代码 结果 前言 由于相机的镜头并不完全理想,成像时会产生线条扭曲.失真等.对双目图像.鸟瞰图等进行处理时,首先要矫正去畸变. 镜头 ...

  7. 计算机视觉:Opencv图像去畸变

    计算机视觉:Opencv图像去畸变 针孔相机模型图像去畸变 方法一 方法二 区别与联系 鱼眼相机模型图像去畸变 方法一 方法二 区别与联系 参考文献 针孔相机模型图像去畸变 针对畸变参数,k1,k2, ...

  8. 从普通相机模型到鱼眼畸变模型--标定与去畸变

    目录 普通相机模型 普通成像模型 针孔模型与透镜组: 径向畸变 切向畸变 现代手机摄像头的基本组成 内参矩阵 畸变模型 张氏标定法 鱼眼模型 透镜组 r和f的进一步说明 等距投影模型(OpenCV:: ...

  9. slam去畸变(径向畸变)

    目录 畸变 径向畸变 切向畸变 去畸变原理 代码 参考 畸变 产生原因:透镜不能完全满足针孔模型假设 径向畸变 畸变程度都是从中心开始,用一个半径画圆的话,半径越大,圆周上的畸变程度也越大.这个就是由 ...

最新文章

  1. go语言中fmt包中Print、Printf、Println输出相关函数的区别
  2. Keil 出现Debug Error! DAMAGE:after Normal block
  3. 安装慢_Origin平台安装更新慢的解决办法
  4. SSDP:DDoS***的“新宠”
  5. 微信小程序 图片显示不完全
  6. MySQL基础 - 简单查询
  7. 矩阵分析L3内积空间
  8. c语言0x前缀的作用,有趣的问题,C语言程序中,为什么十六进制数字以前缀0x开头呢?...
  9. 读《大四学生收到英国诺丁汉大学博士录取通知书》想到
  10. orcal复习及作业
  11. 基于SVM的数据分类预测——意大利葡萄酒种类识别
  12. UCK Network 全球路演广州站 UCK通证全球首发上线引关注热潮
  13. 天翼物联获2022年移动物联网“先进企业”
  14. charles的简介、安装、破解及使用教程
  15. 微信小程序的登录过程简介
  16. 小程序直播带货系统优势—直播带货的技巧
  17. 诺基亚N900安装Android 2.2改版系统Nitdroid教程
  18. StorageClass
  19. 使用期望等待一次性事件
  20. Python之text()函数用法:plt.text()

热门文章

  1. RK3288平台下调屏参基本步骤
  2. IBus Pinyin 导入Sougou词库
  3. 【write up】2021春秋杯-BabySteg
  4. 网易云音乐每日歌曲推荐的原理是什么?
  5. java8流转数组_Java8 教程第八章之Array to Stream
  6. 叶子提取物的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  7. 如何优雅判断属性值为空
  8. JS入门到入土之数字运算符扩展
  9. python close_wait_服务器TIME_WAIT和CLOSE_WAIT分析和解决办法
  10. 拼多多2021高频题汇总 | 备战春招,刷这30题就够了!