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

OpenCV:

用OpenCV自帶的Sample:路徑

  1. 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,結果如上,現用

  1. 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. 虚拟机安装MySQL报** is needed by **错误

    执行命令: [root@node1 local]# rpm -ivh mysql-community-server-8.0.12-1.el7.x86_64.rpm 安装MySQL遇到以下问题: err ...

  2. shell 终端字符颜色

    终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关,shell,python,perl等均可以调用. 转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC ...

  3. Docker Ubuntu/CentOS 下运行 java jar

    官方安装方法 https://docs.docker.com/engine/installation/linux/ubuntu/ Ubuntu安装包 https://download.docker.c ...

  4. DRF之注册响应分页组件

    注册器 注册器的作用就是以后我们不用自己手动的一条条的敲路径了,它可以帮助哦们直接去找对应的路由,不用传参了,知道这一点就可以了,不多说还是,上代码实例 第一步:导入模块from django.url ...

  5. mysql连接查看

    1:查看当前连接 mysql> show status like 'Threads%'; +-------------------+-------+ | Variable_name     | ...

  6. WEB服务器、网站、域名、IP地址、DNS服务器之间的关系

    域名首先指向你的服务器,这个过程叫解析.  服务器分成好多小块,每小块叫一个空间或者一个虚拟主机.  所以当你输入你的域名以后,服务器收到你域名的访问信息,但不知道要打开这么多个小块中的那一个.所以要 ...

  7. httpd编译安装php

    wget http://hk1.php.net/distributions/php-5.6.31.tar.gz yum groupinstall "Development Tools&quo ...

  8. oracle 空值排序,排在最前面或者最后面

    1,排在最前面用order by name nulls first; eg:select t.name,t.code from table t where t.code!='1' order by n ...

  9. js弹出页面

    建立一个HTML文件,输入以下代码就能弹出页面 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  10. springboot2.x如何配置全局自定义异常

    为什么要捕获异常? 我们开发中,经常运行时,代码会报错,这时候我们有可能抛出异常,而不是用try..catch来解决.而且现在前后端分离,如果不捕获异常的话,前端那边的人估计会被报的错搞得焦头烂额的. ...