OCamCalib软件的使用方法

标签:相机标定


转载请说明:http://blog.csdn.net/hust_sheng/article/details/77976619


此软件方便易用,且精度高于OpenCV等普通工具,是相机去畸变的常用工具。详细见官网(可能需要翻墙)。


  • matlab进入对应目录
    比如 C:\Users\popsheng\Desktop\Scaramuzza_OCamCalib_v3.0_win

    • 输入ocam_calib
      打开下面的界面
  • 拍照要求

    ATTENTION!
    In order to obtain good calibration results, I suggest the following:

    1. Approach the checkerboard to the mirror or to the fisheye as much as you can (see sample images below). This will improve the calibration and will increase the chances that the Automatic Checkerboard Extraction tool finds all the corners! Make sure that every corner of the checkerboard is visible in each image. For the Automatic Checkerboard Extraction tool it is furthermore important that a white border is present around the pattern.
    2. Take pictures of the checkerboard in order to cover all the visible area of the camera, e.g. from all around the mirror. By doing this, you allow calibration to compensate for possible misalignments between the camera and mirrors axes. The second and most important reason for doing this is that it helps the automatic detection of the center of the omnidirectional image.
  • Load images
    Before loading the images, make sure that they are in the same folder of the toolbox files.(Copy all the images into OCamCalib folder)

  • click on the button Read names

    • 会提示:Basename camera calibration images (without number nor suffix):
      比如图片文件名是image1.jpg、image2.jpg… 这一步我们就输入image

    • 接下来会提示:Image format: ([]='r'='ras', 'b'='bmp', 't'='tif', 'g'='gif', 'p'='pgm', 'j'='jpg', 'm'='ppm') >> g 告诉我们指示文件类型

  • Extraction of grid corners

    • 会提示:Extraction of the grid corners on the images Type the images you want to process (e.g. [1 2 3], [] = all images) = 即我们可以选择处理那几张图片,直接回车表示处理全部图片

    • 接下来会提示:Number of squares along the X direction ([]=10) = 以及 Number of squares along the Y direction ([]=10) = 表示棋盘角点的个数,如果我们使用官网的棋盘,那么X就是6,Y就是8

    • 接下来会提示:Size dX of each square along the X direction ([]=30mm) = 以及 Size dX of each square along the Y direction ([]=30mm) = 棋盘方格宽度,可以点击回车

    • 接下来会提示:X coordinate (along height) of the omnidirectional image center = ([]=960) = 以及 Y coordinate (along width) of the omnidirectional image center = ([]=1280) =用于指定图像中心点坐标,可以直接回车,软件默认使用(height/2, width/2),

    • 接下来是:EXTRACTION OF THE GRID CORNERS Do you want to use the automatic image selection or do you want to process the images individually ( [] = automatic, other = individual )? 这一步表示我们可以选择处理某些图片,回车表示自动进行图像选择(忽略角点遮挡的图像),也是推荐的做法,回车即可

    软件会一次处理每张图片,即找到棋盘格角点,如下图所示:

  • lick on the button Calibration

    • 会提示:Degree of polynomial expansion ([]=4) = 即去除畸变的多项式展开度(幂值),默认值即可,直接回车

  • Find center
    软件会依次迭代查找每个图像的中心并计算输出
    Iteration 1...2...3...4...5...6...7...8...9...
    ...

    Note, if at any time you would like to modify the coordinates of the center, you can simply modify the value of the variables ocam_model.xc and ocam_model.yc, which respectively contain row and column of the center location.

  • Calibration Refinement
    非线性迭代估计相机内外参数,这一步我们可以设置迭代次数,还可以在处理的过程中点击回车停止迭代:
    This function alternately refines EXTRINSIC and INTRINSIC calibration parameters by using a non linear minimization method Because of the computations involved this refinement can take some seconds Loop interrupting: Press enter to stop refinement. (OCamCalib GUI must be selected!) Maximum number of iterations ([] = 100, 0 = abort, -1 = no limit) =

  • Reproject on images
    软件会根据估计的新校准参数重新投影所有格子角,且图像中心用红色圆圈进行了标注。

  • Show Extrinsic
    软件会展示棋盘格的空间位置:

  • Analyse error

    可以查看所有棋盘的每个点的重新投影错误(畸变和正常的差)的分布。颜色指的是棋盘的不同图像:

  • Recompute corners

    重新计算角点,提升准确率

    • 会提示:wintx ([] = 20) = winty ([] = 20) = 即容错窗口大小,回车默认即可
  • Show Calib Results
    展示校准结果:

  • Load, Save, and Export the calibration results
    一次点击Save Load Export Data即可,根目录下的 calib_results.txt就是我们需要的文件

相机去畸变软件OCamCalib的使用方法相关推荐

  1. AVM环视系统:鱼眼相机去畸变算法及实战

    作者丨中投靓仔@知乎 来源丨https://zhuanlan.zhihu.com/p/603296375 编辑丨自动驾驶与AI 点击进入->3D视觉工坊学习交流群 前言 在近一年的AVM算法开发 ...

  2. 鱼眼相机去畸变 Python/C++实现

    陆辉东之前做了RealSense相机图像的远程传输,但是带畸变的图像 如果更进一步,可以一只fisheye带畸变,一只fisheye去畸变,这样放在QT界面里视觉感更好些 下午简单尝试了下,没有成功, ...

  3. matlab畸变校正代码_关于OpenCV中的去畸变

    在opencv中,有关图像或像素点(角点)去畸变的函数有cv::undistort(),cv::getOptimalNewCameraMatrix(),cv::initUndistortRectify ...

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

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

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

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

  6. 相机模型与去畸变方法详解

    相机与图像模型 一.针孔相机模型 1.1 成像原理 1.2 实际坐标与像素坐标的关系 1.3 如何获得实际坐标 二.畸变相机模型 2.1 两种常见畸变的介绍 2.2 去畸变方法 2.3 示例程序 相机 ...

  7. 立体视觉 -- 相机畸变矫正(去畸变)

    相机畸变矫正 在双目立体视觉中,常常会使用张正友的相机标定方法,得到相机的参数(相机内参和畸变),进而矫正由于相机透镜制造工艺等因素造成的图像畸变.在Opencv 和 Matlab 中都有封装好的函数 ...

  8. 相机畸变原因与去畸变原理与代码

    相机畸变原因与去畸变原理与代码 相机主要有两种畸变:径向畸变和切向畸变 径向畸变由透镜形状引起的畸变: 切向畸变由相机组装过程中透镜与成像面不严格平行导致的. 一个畸变效果图: 我们能够看到位于图像边 ...

  9. python 正方形去畸变_opencv 角点检测+相机标定+去畸变+重投影误差计算

    https://blog.csdn.net/u010128736/article/details/52875137 https://blog.csdn.net/h532600610/article/d ...

最新文章

  1. Springboot之多环境打包配置
  2. Oracle执行计划顺序
  3. tf热保护怎么安装_SEW-电机热保护说明
  4. Vue基础学习(一)------内部指令
  5. AJAX入门——工作原理
  6. 二阶龙格库塔公式推导_带你走进最美数学公式
  7. np.cross函数详解
  8. java反显是什么_卡西欧反显是什么意思
  9. c语言实现的sin cos查找表_考研数据结构之C语言实现顺序表的增、删、查(粘贴即可运行)...
  10. C#记事本的简单开发
  11. SQL HAVING 用法详解
  12. 给spring容器注册组件
  13. json字符串中的大括号转义传到后台_string.format格式化字符串中转义大括号“{}”...
  14. Financial Management
  15. python 大小端转换_Python bin文件大小端转换
  16. oracle excel总结,oracle导出excel 步骤总结
  17. SQLServer数据库可疑的解决方法
  18. KVM虚拟化技术实践
  19. QT-局域网电脑远程桌面
  20. Android 第二春 无缝Harmony 开发

热门文章

  1. 2022-07-17 Linux group与user基础概念
  2. Allegro如何使用快捷键快速切换层面操作指导
  3. c语言自定义创建文件,c语言自定义文件名?
  4. 带有播放列表的网页播放器
  5. 【MySQL】浅谈MySQL中索引的基本操作以及背后的数据结构
  6. weblogic 12c 打补丁
  7. 检测图片篡改困难?快来试试这款黑科技
  8. C# chart1 添加滚动条的缩放 鼠标滚轮控制缩放
  9. 头牌知产介绍燃气灶商标注册类别属哪一类?
  10. 若依ruoyi-vue总结