以前DIP課程有做過Camera calibration,這次因為用Gopro做Visual SLAM,所以又要撿一下校正的過程。主要還是張正友的方法。

OpenCV:

用OpenCV自帶的Sample:路徑

C:\opencv\sources\samples\cpp\tutorial_code\calib3d\camera_calibration 

1)打印自製校正板,用相機從不同角度拍攝(理論上三次以上,實際上最好10張以上)。

2)圖片路徑寫到VID5.xml中

3)修改in_VID5.xml中的長寬角點數(圖中是8X6)、小格邊長(圖中28mm)、VID5.xml路徑、用於校正的圖片數、校正結果的存儲路徑output_data.xml

4)在camera_calibration.cpp的main函數中指定in_VID5.xml的位置,imshow後面可以加上一段code存下校正后的圖片(optional)

5)Run camera_calibration.cpp

6)結果:

經驗:圖片數量要夠,cover的區域要夠,剔除角度太大的圖片,否則會造成失敗。

另外,openCV sample中用的是remap,結果如上,現用

undistort(view,rview, cameraMatrix, distCoeffs);

代替remap,結果如下:

可見經過裁剪。

MATLAB:

同樣的原理,有交互界面,但是需要手動操作,所有細節都在主頁上http://www.vision.caltech.edu/bouguetj/calib_doc/index.html#examples

相机标定/校正(Camera Calibration)的更多相关文章

  1. 【视频开发】【计算机视觉】相机标定(Camera calibration)原理、步骤

    相机标定(Camera calibration)原理.步骤 author@jason_ql(lql0716)  http://blog.csdn.net/lql0716 在图像测量过程以及机器视觉应用 ...

  2. 【视频开发】【计算机视觉】相机标定(Camera calibration)《二》

    简介 摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵 P 的过程,下面相关的部分主要参考UIUC的计算机视觉的课件(网址Sprin ...

  3. 摄像头标定GML Camera Calibration

    摄像头标定GML Camera Calibration GML Camera Calibration官方版是一款十分优秀出色的相机标定软件,GML Camera Calibration官方版界面友好, ...

  4. MATLAB二维相机标定的解决方案 calibration

    第一步,在命令行下面输入cameraCalibrator,启动MATLAB相机标定.相机矫正界面 cameraCalibrator 第二步:拍照.如果你是做相机标定,你应该知道,你需要一些calibr ...

  5. 相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)

    相机标定 一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标 ...

  6. 相机标定(Camera calibration)

    简单介绍 摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程.也就是求终于的投影矩阵 P 的过程,以下相关的部分主要參考UIUC的计算机视觉的课件(网址Spr ...

  7. Camera Calibration 相机标定:Opencv应用方法

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/49427383 Opencv中Camer ...

  8. Camera Calibration 相机标定

    Camera Calibration 相机标定 一.相机标定方法 在opencv中提供了一组函数用于实现相机的标定,标定返回的值包括:相机内参矩阵(fx fy xc yc).相机外参矩阵(R t)以及 ...

  9. Camera Calibration 相机标定:原理简介(五)

    5 基于2D标定物的标定方法 基于2D标定物的标定方法,原理与基于3D标定物相同,只是通过相机对一个平面进行成像,就可得到相机的标定参数,由于标定物为平面,本身所具有的约束条机,相对后者标定更为简单. ...

随机推荐

  1. python3 FTP简单实现文件下载(含中文乱码问题)

    from ftplib import FTP def ftp_down(HOST,romatepath,filename,localpath): user=***** password=***** f ...

  2. maya2016安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  3. python xml dom

    http://www.cnblogs.com/coser/archive/2012/01/10/2318298.html

  4. java多线程之原子变量

    看链接博客:http://blog.csdn.net/u011116672/article/details/51068828

  5. C# 使用消息队列,包括远程访问

    转:https://www.cnblogs.com/80X86/p/5557801.html 功能需求,用到了队列,用的时候出了很多问题,现在总结一下,希望能对有需要的人提供帮助. 我的需求很简单,就 ...

  6. kafka的分区分配策略

    用过 Kafka 的同学应该都知道,每个 Topic 一般会有很多个 partitions.为了使得我们能够及时消费消息,我们也可能会启动多个 Consumer 去消费,而每个 Consumer 又会 ...

  7. php一种面向对象的语言,那么什么是面向对象呢?

    php一种面向对象的语言,那么什么是面向对象呢? 传统的面向过程的编程思想: 相信很多人第一次接触编程都是c语言,c语言就是非常典型的面向过程的编程语言,将要实现的功能描述为一个从开始到结束的连续的“ ...

  8. 安全漏洞 : XSS CSRF

    https://my.oschina.net/hc24/blog/527099 XSS成因概括 : XSS其实就是Html的注入问题,攻击者A的输入没有经过严格的控制进入了数据库,最终显示给来访的用户 ...

  9. 从PeopleEditor控件中取出多用户并更新到列表

    如果一个列表中有一个字段类型为用户或用户组,并且设置为用户,允许多值的话,那么用代码进行更新的时候就必须将这个字段的值赋成SPFieldUserValueCollection类型,以下代码即为从Peo ...

  10. SAP ECC6.0-中建信息版

    平台: SUSE Enterprise Server 类型: 虚拟机镜像 软件包: sap ecc 6.0 ehp7 sps10 commercial erp sap 服务优惠价: 按服务商许可协议 ...