c++代码

代码地址:https://gitee.com/zpf_1900/camera
我使用的环境:Ubuntu20.04 OpenCV3.4.15 c++

去畸变过程。
1、首先使用相机对棋盘图拍照,各个角度照片,拍个二三十张吧,照片质量最好好一点,张数不限制
2、把图片放到/img文件夹下即可
3、到build下编译代码
5、然后直接执行main即可
6、执行完了之后,会在/doc下自动生成caliberation_result.txt文件,里面记录了我们计算出来的参数。

注意:生成的这个参数,内参矩阵是3x3的
内参K=(fx0cx0fycy001)K=\begin{pmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{pmatrix}\quadK=⎝⎛​fx​00​0fy​0​cx​cy​1​⎠⎞​
畸变矩阵5个参数分别是k1,k2,p1,p2,k3(从左到右)

7、到/include文件夹下,imgUndistort.h程序里需要我们填写计算出来的内参和畸变参数
与上面计算出来的一一对应

8、计算完了参数之后,以后想此相机拍摄的其他图像去畸变,直接调用imgUndistort.h即可
在src里面也提供了demo,可以看怎么调用的。
因为改了参数,所以可以重新编译一下,然后执行/build文件夹下的demoImgUndistort即可对/img文件夹下的图片去畸变,去除后的结果图片存放在/img

整个流程如上,注意:去畸变的效果与拍摄的用来计算的图片有关!

关于此方法的具体原理:
可以参考这篇文章: https://zhuanlan.zhihu.com/p/94244568
(文章有给出python代码)

张正友相机标定法--相机去畸变(C++)相关推荐

  1. 张正友平面标定法的一些注意事项

    从一月到现在一直有一个问题比较烦人,就是这相机标定的问题,这个问题使用相机的人基本都会先去做这个,很多人在这问题上做研究,有很多种,基于各种模型的,而且算法都比较成熟.我们一开始就把问题想简单了,因为 ...

  2. 张正友平面标定方法 超详细

     利用摄像机所拍摄到的图像来还原空间中的物体.在这里,不妨假设摄像机所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系:[像]=M[物],这里,矩阵M可以看成是摄像机成像的几何模型. M中 ...

  3. 张正友摄像机标定的研究(MATLAB+OpenCV)

    张正友 本科浙大,本来以为是中国人论文是中文呢,哎 张正友的主页: http://research.microsoft.com/en-us/um/people/zhang/Calib/ 不过里面的棋盘 ...

  4. matlab张正友摄像机标定算法应用,张正友摄像机标定的研究(MATLAB+OpenCV)

    张正友 本科浙大,本来以为是中国人论文是中文呢,哎 不过里面的棋盘格跟我的不一样啊,why???,我决定先看看中文的论文吧,我的首要任务是弄清楚输入输出,流程,怎么用吧 matlab 跟 opencv ...

  5. [毕设系列] 一、张正友相机标定

    张正友相机标定 预备知识 0.1 刚体.仿射.线性.旋转变换 0.2 什么是标定? 0.3 为什么要进行标定? 0.4 什么是畸变? 一.张正友标定法 1.1 简介 1.2 流程 1.3 畸变公式 二 ...

  6. matlab圆形标记,toolbox_calib 改进过的张正友标定法,可以用于使用圆形标记点 板的相机 。 matlab 266万源代码下载- www.pudn.com...

    文件名称: toolbox_calib下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 946 KB 上传时间: 2014-02-23 下载次数: 39 提 ...

  7. 张正友相机标定算法详解

    张正友相机标定算法详解 1.齐次表示法与一些基本结论 1.1 点与直线的齐次表示 ​ 在射影几何中,通常用齐次方式来表达点与直线.比如p=(u,v)p=(u,v)p=(u,v)被表示成p^=(x1,x ...

  8. 三维重建学习(3):张正友相机标定推导

    前言 前面的几篇博客中介绍了有关相机标定的基础知识(三维重建学习(1):基础知识:旋转矩阵与旋转向量.三维重建学习(2):相机标定基础).这次介绍一个十分经典的单目相机标定方法--张正友标定,并给出数 ...

  9. 标定学习笔记(二)-- 张正友论文学习笔记

    这篇学习笔记主要用于记录在学习张正友的标定文献时的一些需要进行记录的要点,张正友的文章最初发表于1998年2月,在如今看来依旧具有进一步学习的意义,本文多以翻译与概述前人文献为主,重温其标定过程的核心 ...

  10. python 倒数两列_相机标定之张正友标定法数学原理详解(含python源码)

    一.相机标定的目的 我们首先要明白两个问题:1.相机是如何成像的?2.相机标定的目的是什么? 1.相机是如何成像的呢? 相机成像系统中,共包含四个坐标系:世界坐标系.相机坐标系.图像坐标系.像素坐标系 ...

最新文章

  1. android读取excel数据库,Android 读取Excel数据并保存在本地数据库
  2. 【转】未能加载文件或程序集或它的某一个依赖项,系统找不到指定的文件
  3. 怎么设置tomcat管理员的用户名和密码
  4. Docker仓库搭建
  5. 老李分享:接口测试之jmeter
  6. cv2.dnn.readNetFromDarknet()在python3上遇到的问题
  7. 作者:谢波峰(1976-),男,中国人民大学财政金融学院副教授,中国人民大学金融与财税电子化研究所执行所长。...
  8. PB代码动态解析执行器
  9. java教务管理系统数据库设计_新手可以学习的教务管理系统详细设计(一)
  10. SpringBoot 2.1.5(38)---热部署(devtools)配置操作
  11. css随机数,在LESS CSS中生成随机数?
  12. matlab拟合高次相,matlab 多元高次非线性函数拟合,回归,求教高手!
  13. linux hosts请求报错
  14. 关于程序、进程和线程
  15. CAT - 监控平台之装配篇
  16. Java_Arrays.fill() 初始化二维数组一个指定值
  17. c语言函数名称大全,C语言函数大全
  18. python等值线如何设置高度的范围和间隔_matlab 等值线间距问题
  19. 计算机全选的键盘,全选快捷键是什么,教您电脑全选快捷键是什么
  20. 在无外网虚拟机CentOS7下安装金山wps-office最新版(超详细小白教程)

热门文章

  1. 主从不同步故障案例一
  2. java中的构造函数
  3. 一个按照行来截取显示文章摘要的函数
  4. literal和meta的意义和用法
  5. android获取用户点击的坐标
  6. myeclipse中删除tomcat 的server后,重新添加进来的方法
  7. 操作数据库为什么需要进行事务控制
  8. 记我朋友的一次前端面试
  9. Flocks,Herds and Schools: A Distributed Behavioral Model
  10. Vsftp的PASV模式和Port模式及VsFTP配置方案