当前位置:文档之家› 基于Matlab的相机标定工具箱

基于Matlab的相机标定工具箱

基于Matlab的相机标定工具箱
基于Matlab的相机标定工具箱

基于Matlab的相机标定工具箱

Camera Calibration Toolbox for Matlab

基于Matlab的相机标定工具箱

英文原版:https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/

这是使用Matlab Toolbox 进行摄像机标定的完整文档的发行版本。该文档包含了关于标定、参考和相关链接,也可以作为摄像机标定的指导说明。

本工具箱的C 语言实现包含在Intel 的Open Source Computer Vision(OpenCV)中,可以在线免费下载。

本篇文章内容组织如下:

1、系统需求

2、开始

3、标定实例

4、标定参数说明

5、标定工具箱函数说明

6、标定你自己的摄像机

7、关于工具箱未公布的功能

8、参考文献

9、关于摄像机标定的链接

1、系统需求

该工具箱可以在Windows、Linux和Unix系统下的Matlab 5.x, Matlab 6.x and Matlab 7.x 版本下使用,而且不需要任何特定的Matlab 工具箱(例如:不需要最优化工具箱)。

注意:我最近收到了在Matlab 2007b 平台下关于GUI 相关的bug 报告。当修复工作完成时我会将其上传。请将你在使用过程中遇到的问题通知给我以帮助维护这个工具箱。请在邮件里写清楚bug 的类型,并复制完整的错误信息。谢谢!!

2、开始

◆转到下载页面,获取最新版本的完整的摄像机标定Matlab 工具箱。

◆将解压出的所有文件(.m 文件)放入一个文件夹中(默认的文件夹名称是TOOLBOX_calib)。

◆运行Matlab,并将TOOLBOX_calib 文件夹添加到matlab path 环境中。该步骤可以让你在任何地方调用matlab 工具箱里的任何函数。在Windows 系统下,该操作可以方便的通过path 编辑菜单进行。在Linux 和Unix 系统下,你可以使用path 或者addpath 命令(使用help 命令查看相关的帮助说明)。

◆运行matlab标定主函数calib_gui(或calib)。

屏幕上将出现如下的模式界面

该选择窗口提示你在工具箱的两种操作模式中选择其一:标准模式和内存节省模式。在标准模式下,所有标定时需要的图像一次性装入内存,之后不再进行磁盘的读取。这大大减小了磁盘访问的开销,加速了图像处理和图形显示函数执行的速度。然而,如果图片过大,或图

片过多,将会出现OUT OF MEMORY 错误。因此,可以使用新的内存节省模式。在内存

节省模式下,每次只读取一幅图片,并且不在内存中存储。

如果选择运行标准模式,当遇到OUT OF MEMORY 错误时,可以该选用内存节省模式。

两种模式的操作是完全兼容的(输入与输出),内部进行转换。

因为两种模式的用户界面完全一样,在本文中我们选择了标准界面。点击屏幕上方的标准界面按钮,将出现工具箱的标定主窗口(取代模式选择窗口)如下:

模式选择的步骤可以通过执行calib_gui(0) (使用标准模式)或执行calib_gui(1) (使用

内存节省模式)跳过(键入help calib_gui 查看更多信息)。

◆现在你可以使用工具箱进行标定了。

3、标定实例

◆第一个标定实验- 角点提取,标定,其他工具:

https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/htmls/example.html

本章节将指导你进行一个基于20(或25)张平面西洋跳棋盘图片的全面的标定实例。这个例子让你指导如何跟工具箱的所有功能:装入标定图片,提取图像角点,运行主标定程序,显示结果,控制精度,添加或减少图片,纠正图片畸变,以不同格式输出标定数据……

本例子对所有开始使用该工具箱的人非常有用。

◆第二个标定实验- 使用Zhang Zhengyou 的数据进行标定:

https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/htmls/example2.html

本节指示如何使用主标定程序以脚本模式对Zhang Zhengyou 的数据进行标定。实验结束后,你将了解如何通过选择不通的参数改变固有摄像机模型从而达到最优化。该例子对使用主标定程序对自己已有的matlab script 文件进行标定的人很有用。

◆第三个标定实验- 使用Heikkil 的数据进行标定(平面和非平面的标定物):

https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/htmls/example3.html

当标定物为非平面时,基于Heikkil 数据的主最优程序标定实验也很有用,试一下这个程序,运行时间仅需30 秒钟。

◆第四个标定实验- 使用Bakstein 和Halir 的数据进行标定:

https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/htmls/example4.html

另一个基于Bakstein 和Halir 的数据进行的主最优程序标定例子。

◆第五个标定实验- 标定一个立体系统,立体图像校正和三维三角测量:

https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/htmls/example5.html

这个例子指示如何使用工具箱标定立体系统(固有的和非固有的),校正立体图像,执行三维三角测量。演示了名称为stereo_gui 的立体工具箱。

◆第六个标定例子- 单摄像机的两种独立标定方法的综合

https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/htmls/example6.html

本例子通过merge_two_datasets.m进行了简单演示,使你可以简单的组合单个摄像机的两

种独立标定方式。

标定完成后,通过点击Save 按钮可以保存参数列表到matlab 数据文件Calib_Results.mat。本节详细介绍了所有标定参数(固有的和非固有的)和它们的相关的matlab 变量名称。此外还给出了我们所用符号与Heikkil 和Willson 的符号的一对一说明。

本节给出了标定工具箱的主要函数的简单说明。

本节包含了关于标定所要做的初始步骤:设计标定对象,命名标定图像,图片格式……

对与如何开始进行摄像机标定非常有用。对于比较懒的人来说,也提供了一个标定模版。

本节包含了自本文档第一次发布后添加的功能列表。

设计本工具箱的参考文献

关于摄像机标定相关链接的简短列表

-------------------------------------

基于靶标平面相机参数动态标定Matlab程序

基于靶标平面相机参数动态标定Matlab程序 ★注意:直接运行bd.m文件即可进行动态标定,附录Ⅲ中的其它函数文件均会被bd.m文件调用;坐标数据由实验获取。 bd .m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % M为靶标角点的世界坐标数据,m1—m5为5组图像像素坐标数据;本函数为主函数,它将数据赋值给函数Dtbd(M,m)实现相机动态标定。 clc; clear; M=load('Model.txt'); %Model.txt中为靶标角点的世界坐标,由实验测得 m1=load('data1.txt'); m2=load('data2.txt'); m3=load('data3.txt'); m4=load('data4.txt'); %data1.txt—data5.txt中为不同视角所对应的角点图像坐 %标,可用附录Ⅱ中的程序测得 m5=load('data5.txt');%Model.txt为靶标的世界坐标 M=[M(:,1:2) ; M(:,3:4) ; M(:,5:6) ; M(:,7:8)]; m1=[m1(:,1:2) ; m1(:,3:4) ; m1(:,5:6) ; m1(:,7:8)]; m2=[m2(:,1:2) ; m2(:,3:4) ; m2(:,5:6) ; m2(:,7:8)]; m3=[m3(:,1:2) ; m3(:,3:4) ; m3(:,5:6) ; m3(:,7:8)]; m4=[m4(:,1:2) ; m4(:,3:4) ; m4(:,5:6) ; m4(:,7:8)]; m5=[m5(:,1:2) ; m5(:,3:4) ; m5(:,5:6) ; m5(:,7:8)]; M=M'; % 将靶标平面上角点的世界坐标写入矩阵M中,M为2维矩阵m(:,:,1)=m1'; m(:,:,2)=m2'; m(:,:,3)=m3'; m(:,:,4)=m4'; m(:,:,5)=m5'; % 将5个视角对应的图像像素坐标写入矩阵m中,m为3维矩阵Dtbd(M,m) % 调用Dtbd .m文件进行动态标定%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Dtbd .m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Dtbd(M,m)函数实现的功能正是本论文中第4章所讲述的动态标定技术,它引入了径向畸变和切向畸变,具体标定过程可参照本论文。 function Dtbd(M,m) [rows,npts]=size(M); matrixone=ones(1,npts); M=[M;matrixone]; num=size(m,3); for i=1:num

摄像机参数标定步骤

1、系统需求 该工具箱可以在 Windows、Linux和Unix系统下的Matlab 5.x, Matlab 6.x and Matlab 7.x 版本下使用,而且不需要任何特定的 Matlab 工具箱(例如:不需要最优化工具箱)。 注意:我最近收到了在 Matlab 2007b 平台下关于 GUI 相关的 bug 报告。当修复工作完成时我会将其上传。请将你在使用过程中遇到的问题通知给我以帮助维护这个工具箱。请在邮件里写清楚 bug 的类型,并复制完整的错误信息。谢谢!! 2、开始 ◆转到下载页面,获取最新版本的完整的摄像机标定 Matlab 工具箱。 ◆将解压出的所有文件(.m 文件)放入一个文件夹中(默认的文件夹名称是 TOOLBOX_calib)。 ◆运行 Matlab,并将 TOOLBOX_calib 文件夹添加到 matlab path 环境中。该步骤可以让你在任何地方调用 matlab 工具箱里的任何函数。在 Windows 系统下,该操作可以方便的通过 path 编辑菜单进行。在 Linux 和 Unix 系统下,你可以使用 path 或者 addpath 命令(使用 help 命令查看相关的帮助说明)。 ◆运行matlab标定主函数 calib_gui(或calib)。 屏幕上将出现如下的模式界面 该选择窗口提示你在工具箱的两种操作模式中选择其一:标准模式和内存节省模式。在标准模式下,所有标定时需要的图像一次性装入内存,之后不再进行磁盘的读取。这大大减小了磁盘访问的开销,加速了图像处理和图形显示函数执行的速度。然而,如果图片过大,或图片过多,将会出现 OUT OF MEMORY 错误。因此,可以使用新的内存节省模式。在内存节省模式下,每次只读取一幅图片,并且不在内存中存储。 如果选择运行标准模式,当遇到 OUT OF MEMORY 错误时,可以该选用内存节省模式。两种模式的操作是完全兼容的(输入与输出),内部进行转换。 因为两种模式的用户界面完全一样,在本文中我们选择了标准界面。点击屏幕上方的标准界面按钮,将出现工具箱的标定主窗口(取代模式选择窗口)如下: 模式选择的步骤可以通过执行 calib_gui(0) (使用标准模式)或执行 calib_gui(1) (使用内存节省模式)跳过(键入 help calib_gui 查看更多信息)。 ◆现在你可以使用工具箱进行标定了。 3、标定实例

Matlab数理统计工具箱常用函数命令大全

Matlab数理统计工具箱应用简介 1.概述 Matlab的数理统计工具箱是Matlab工具箱中较为简单的一个,其牵扯的数学知识是大家都很熟悉的数理统计,因此在本文中,我们将不再对数理统计的知识进行重复,仅仅列出数理统计工具箱的一些函数,这些函数的意义都很明确,使用也很简单,为了进一步简明,本文也仅仅给出了函数的名称,没有列出函数的参数以及使用方法,大家只需简单的在Matlab工作空间中输入“help 函数名”,便可以得到这些函数详细的使用方法。 2.参数估计 betafit 区间 3.累积分布函数 betacdf β累积分布函数 binocdf 二项累积分布函数 cdf 计算选定的累积分布函数 chi2cdf 累积分布函数2χ expcdf 指数累积分布函数 fcdf F累积分布函数 gamcdf γ累积分布函数 geocdf 几何累积分布函数 hygecdf 超几何累积分布函数 logncdf 对数正态累积分布函数 nbincdf 负二项累积分布函数 ncfcdf 偏F累积分布函数 nctcdf 偏t累积分布函数 ncx2cdf 偏累积分布函数2χ normcdf 正态累积分布函数 poisscdf 泊松累积分布函数 raylcdf Reyleigh累积分布函数 tcdf t 累积分布函数 unidcdf 离散均匀分布累积分布函数 unifcdf 连续均匀分布累积分布函数 weibcdf Weibull累积分布函数 4.概率密度函数 betapdf β概率密度函数 binopdf 二项概率密度函数 chi2pdf 概率密度函数2χ

exppdf 指数概率密度函数 fpdf F概率密度函数 gampdf γ概率密度函数 geopdf 几何概率密度函数 hygepdf 超几何概率密度函数 lognpdf 对数正态概率密度函数 nbinpdf 负二项概率密度函数 ncfpdf 偏F概率密度函数 nctpdf 偏t概率密度函数 ncx2pdf 偏概率密度函数2χ normpdf 正态分布概率密度函数 pdf 指定分布的概率密度函数 poisspdf 泊松分布的概率密度函数 raylpdf Rayleigh概率密度函数 tpdf t概率密度函数 unidpdf 离散均匀分布概率密度函数unifpdf 连续均匀分布概率密度函数weibpdf Weibull概率密度函数5.逆累积分布函数 Betainv 逆β累积分布函数 binoinv 逆二项累积分布函数 chi2inv 逆累积分布函数2χ expinv 逆指数累积分布函数 finv 逆F累积分布函数 gaminv 逆γ累积分布函数 geoinv 逆几何累积分布函数 hygeinv 逆超几何累积分布函数 logninv 逆对数正态累积分布函数 nbininv 逆负二项累积分布函数 ncfinv 逆偏F累积分布函数 nctinv 逆偏t累积分布函数 ncx2inv 逆偏累积分布函数2χ norminv 逆正态累积分布函数 possinv 逆正态累积分布函数 raylinv 逆Rayleigh累积分布函数 tinv 逆t累积分布函数 unidinv 逆离散均匀累积分布函数 unifinv 逆连续均匀累积分布函数 weibinv 逆Weibull累积分布函数

【CN110033491A】一种相机标定方法【专利】

(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910299209.5 (22)申请日 2019.04.15 (71)申请人 南京工程学院 地址 211167 江苏省南京市江宁科学园弘 景大道1号 (72)发明人 郝飞 王宗荣 史晶晶 王帆  陈德林 胡运涛 汪海洋 张汝祥  (74)专利代理机构 南京纵横知识产权代理有限 公司 32224 代理人 董建林 范青青 (51)Int.Cl. G06T 7/80(2017.01) (54)发明名称一种相机标定方法(57)摘要本发明公开了相机标定技术领域的一种相机标定方法。旨在解决现有技术中基于一维标定杆标定精度较低,基于三维标定模板标定存在自遮挡问题,基于棋盘格形二维标定模板标定需进行角点检测而无法获取更高的标定精度,基于单个圆形图案作为特征的二维标定模板标定存在“原理性误差”。所述方法包括如下步骤:根据预制的标定模板采集标定模板图像;提取标定模板图像中的特征点,求解相机内参数及镜头畸变参数;根据相机内参数和镜头畸变参数构建多维向量;利用镜头畸变参数对所述标定模板图像进行去畸变处理并构建新的多维变量,直至相邻两次多维变量的欧式距离小于设定值,输出最后一次 相机内参数及畸变参数。权利要求书1页 说明书6页 附图5页CN 110033491 A 2019.07.19 C N 110033491 A

权 利 要 求 书1/1页CN 110033491 A 1.一种相机标定方法,其特征在于,所述方法包括如下步骤: 将预制的标定模板置于待标定相机的视场内,采集标定模板图像;所述标定模板为二维标定模板,标定模板上分布有多个圆形,多个圆形以标定模板的中心点为环心围成多个直径不同的环形阵列; 提取标定模板图像中圆形的特征点,求解相机内参数及镜头畸变参数;所述特征点为圆形的圆心; 根据相机内参数和镜头畸变参数构建多维向量; 利用镜头畸变参数对所述标定模板图像进行去畸变处理,重复相机内参数及畸变参数的求解过程,并构建新的多维变量,直至相邻两次多维变量的欧式距离小于设定值,输出最后一次相机内参数及畸变参数。 2.根据权利要求1所述的相机标定方法,其特征在于,所述特征点的提取方法包括: 对标定模板图像中的圆形进行边缘检测,利用最小二乘法拟合圆环透视投影后产生的两个椭圆; 连接两个椭圆圆心的直线与每个椭圆形成两个交点,采用交比不变原理求解特征点像点的像素坐标。 3.根据权利要求2所述的相机标定方法,其特征在于,所述特征点的提取方法还包括:对标定模板图像进行预处理,所述预处理包括灰度化处理和或滤波处理。 4.根据权利要求1所述的相机标定方法,其特征在于,所述相机内参数包括:主点坐标的两个分量、横向和纵向缩放因子; 所述相机内参数的求解方法包括: 在标定模板图像上标定四个圆形的特征点,利用四个特征点之间的几何约束和定量关系建立关于相机内参数的四元方程组,所述方程组为无约束非线性方程组; 求解无约束非线性方程组,得到相机内参数。 5.根据权利要求1所述的相机标定方法,其特征在于,所述求解镜头两个畸变参数包括如下步骤: 标定一组特征,所述特征包括标定模板图像中满足调和共轭的三个特征点和一个无穷远点; 根据调和比建立关于两个畸变参数的超定方程组; 运用最小二乘法求解超定方程组,得到镜头两个畸变参数。 6.根据权利要求1至中5任一项所述的相机标定方法,其特征在于,所述设定值≤10-5。 2

实验三 MATLAB图像处理基本操作及摄像机标定(DLT)

实验三 MATLAB图像处理基本操作及摄像机标定(DLT) 实验三 Matlab图像处理基本操作及摄像机标定(DLT) (DLT)1、实验目的 通过应用Matlab的图像处理基本函数,学习图像处理中的一些基础操作和处理。 理解摄像机标定(DLT)方法的原理,并利用程序实现摄像机内参数和外参数的估计。。 2、实验内容: 1) 读取一幅图像并显示。 2) 检查内存(数组)中的图像。 3) 实现图像直方图均衡化。 4) 读取图像中像素点的坐标值。 5) 保存图像。 6) 检查新生成文件的信息。 7) 使用阈值操作将图像转换为二值图像。 8) 根据RGB图像创建一幅灰度图像。 9) 调节图像的对比度。 10) 在同一个窗口内显示两幅图像。 11) 掌握matlab命令及函数,获取标定块图像的特征点坐标。 12) 根据摄像机标定(DLT)方法原理,编写Matlab程序,估计摄像机内参数和12) 外参数。 3、实验要求: 1) 选取一幅图像,根据实验内容1)—10)给出结果。

2) 根据给定的标定块图像及实验内容11),12)进行编程实验。 3) 书写实验报告 4、实验设备 1) 微机。 2) Matlab软件。 5、实验原理 DLT变换: Abdal-Aziz和Karara于70年代初提出了直接线性变换像机定标的方法,他们从摄影测量学的角度深入的研究了像机图像和环境物体之间的关系,建立了像机成像几何的线性模型,这种线性模型参数的估计完全可以由线性方程的求解来实现。 直接线性变换是将像点和物点的成像几何关系在齐次坐标下写成透视投影矩阵的形式: X,,wu,,,, Y,,w,,,svP 3,4,,,,Zw ,,1,,,,1,, 为图像坐标系下的点的齐次坐标,为世界坐标系下的空其中,,,, u,v,1X,Y,Zwww 间点的欧氏坐标, P为3*4的透视投影矩阵,为未知尺度因子。 消去S,可以得到方程组: pX,pY,pZ,p,puX,puY,puZ,pu,011w12w13w1431w32w33w34 pX,pY,pZ,p,puX,puY,puZ,pu,021w22w23w1431w32w33w34 当已知N个空间点和对应的图像上的点时,可以得到一个含有2*N个方程的方程组: AL,0 其中A为(2N*12)的矩阵, L为透视投影矩阵元素组成的向量: T ,,p,p,p,p,p,p,p,p,p,p,p,p111213142122232431323334 ||AL||像机定标的任务就是寻找合适的L,使得为最小,即 min || AL || L

基于MATLAB对相机标定的研究

基于MATLAB对相机标定的研究 相机标定是对相机成像的逆过程求解,是建立二维图像坐标和三维世界坐标之间的对应关系,是机器视觉的重要组成部分。文章对针孔相机成像原理进行分析,考虑相机成像过程的径向畸变和偏心畸变。利用棋盘格标定原理,基于MATLAB对相机进行标定。 标签:相机标定;MATLAB;二值化 随着科技的迅猛发展,机器视觉越来越多的被运用到工业生产。相机的标定是机器视觉的重要组成部分,是对由三维世界坐标到二维图像坐标的映射求解。并廣泛运用于逆向工程、空间测距、图像识别、3D电影、游戏等工程。 相机的标定方法分为两大类,分别为传统标定方法和自标定方法。传统标定方法利用标定块的角点坐标和对应的图像坐标,计算出相机的内外参数,这种标定方法可以标定任意相机模型,标定过程复杂但是结果精确。包括利用最优化算法的标定、考虑畸变补偿的两步法、张正友标定法。自标定法是利用Krupp方程为相机建立绝对二次曲线曲面方程进行求解。这种方法灵活性强,但是鲁棒性和标定结果相对较差。 1 相机的标定原理 对相机进行标定首先需要建立相机的成像模型,首先利用针孔模型对相机的成像原理进行分析,然后考虑实际相机的畸变模型,利用张正友标定方法求解。 1.1 线性模型分析 相机标定的针孔模型是利用小孔成像的原理来描述相机的成像模型。针孔相机模型如下图1。 要描述针孔相机模型,需要介绍四种坐标以及这四种的坐标的相互关系。如图1所示,世界坐标系(OW-XWYWZW)表示世界的绝对坐标,能描述相机及其物理的空间位置。相机坐标(OC-XCYCZC)以相机的光心为坐标的原点,光轴为ZC轴,而XC、YC轴分别平行于图像坐标系的X,Y轴。图像坐标(o-xy)是以光轴与图像平面的交点为原点,描述的成像的平面坐标。图像像素坐标(o-uv)是图像的存储坐标,以图像左上端点为原点,以像素为单位描述图像其u、v轴分别平行于图像坐标的x、y轴。 其中fx=f/dx,dx表示像素在x轴方向的物理尺寸,f为相机的焦距。A是相机的内部参数矩阵,表示针孔模型下相机坐标到像素坐标的转换关系。点(u0,v0)为图像的主点。R是旋转矩阵,t是平移量,M为外部参数矩阵,表示由世界坐标系经过旋转和平移到相机坐标系的转换。

MATLAB工具箱函数

表Ⅰ-11 线性模型函数 函数描述 anova1 单因子方差分析 anova2 双因子方差分析 anovan 多因子方差分析 aoctool 协方差分析交互工具 dummyvar 拟变量编码 friedman Friedman检验 glmfit 一般线性模型拟合 kruskalwallis Kruskalwallis检验 leverage 中心化杠杆值 lscov 已知协方差矩阵的最小二乘估计manova1 单因素多元方差分析manovacluster 多元聚类并用冰柱图表示multcompare 多元比较 多项式评价及误差区间估计 polyfit 最小二乘多项式拟合 polyval 多项式函数的预测值 polyconf 残差个案次序图 regress 多元线性回归 regstats 回归统计量诊断 续表 函数描述 Ridge 岭回归 rstool 多维响应面可视化 robustfit 稳健回归模型拟合 stepwise 逐步回归 x2fx 用于设计矩阵的因子设置矩阵 表Ⅰ-12 非线性回归函数 函数描述 nlinfit 非线性最小二乘数据拟合(牛顿法)nlintool 非线性模型拟合的交互式图形工具nlparci 参数的置信区间 nlpredci 预测值的置信区间 nnls 非负最小二乘 表Ⅰ-13 试验设计函数 函数描述 cordexch D-优化设计(列交换算法)daugment 递增D-优化设计 dcovary 固定协方差的D-优化设计ff2n 二水平完全析因设计 fracfact 二水平部分析因设计 fullfact 混合水平的完全析因设计hadamard Hadamard矩阵(正交数组)rowexch D-优化设计(行交换算法) 表Ⅰ-14 主成分分析函数 函数描述 barttest Barttest检验 pcacov 源于协方差矩阵的主成分pcares 源于主成分的方差 princomp 根据原始数据进行主成分分析 表Ⅰ-15 多元统计函数 函数描述 classify 聚类分析 mahal 马氏距离 manova1 单因素多元方差分析manovacluster 多元聚类分析 表Ⅰ-16 假设检验函数 函数描述 ranksum 秩和检验 signrank 符号秩检验 signtest 符号检验 ttest 单样本t检验 ttest2 双样本t检验 ztest z检验 表Ⅰ-17 分布检验函数 函数描述 jbtest 正态性的Jarque-Bera检验kstest 单样本Kolmogorov-Smirnov检验kstest2 双样本Kolmogorov-Smirnov检验lillietest 正态性的Lilliefors检验 表Ⅰ-18 非参数函数 函数描述 friedman Friedman检验 kruskalwallis Kruskalwallis检验ranksum 秩和检验 signrank 符号秩检验 signtest 符号检验

一种多相机视觉测量系统的全局标定方法

一一第39卷一第5期一吉首大学学报(自然科学版)V o l.39一N o.5一一一一2018年9月J o u r n a l o f J i s h o uU n i v e r s i t y(N a t u r a l S c i e n c eE d i t i o n)S e p t.2018一一 文章编号:10072985(2018)05003808 一种多相机视觉测量系统的全局标定方法? 黄东兆,赵前程 (湖南科技大学机械设备健康维护湖南省重点实验室,湖南湘潭411201) 一一摘一要:提出了一种基于双平面靶标的多相机全局标定方法,要求两靶标之间为刚性联接,绕同一根轴旋转,但它们之间的相对位姿关系可以是未知的.该方法不仅适用于立体视觉测量系统,也适用于基于单目视觉的多相机测量系统,应用于四轮定位仪中多相机相对位姿关系的出厂标定,标定精度满足出厂要求. 关键词:多相机测量系统;全局标定;视觉测量;单目视觉 中图分类号:T P391.7一一一一一一一文献标志码:A D O I:10.13438/j.c n k i.j d z k.2018.05.009 单个相机都受一定的视野范围限制,为了满足高精度二宽视野的工业测量任务,通常需要用多个相机组建一个具有更大视觉空间范围的测量系统.对每个相机进行内参标定,只能在单个相机坐标系下建立视觉测量模型.由于各相机坐标系彼此独立,因此所有相机的测量结果需要统一到其中一个相机坐标系或一个全局坐标系中来表达.统一的过程被称为多相机测量系统位姿关系的全局标定.通常使用 金规校准 (需1个制作精确的标准件作为参考基准)与 银规校准 (需1个经过坐标测量机标定后的标准件作为参考基准)对多相机系统进行全局标定,但在日常搬运中要防止标准件不受损害是相当困难的.因此,张广军[1]提出了使用双电子经纬仪或单电子经纬仪加靶标进行全局标定的方法.该方法精度高,但电子经纬仪价格昂贵,普适性受限.其他一些方法[23]无需贵重仪器,但仅适用于立体视觉测量系统,不能应用于单目视觉系统.多相机测量系统全局标定的本质是确定系统中相机两两之间的相对位姿关系[4],只要任意两相机间的相对位姿关系确定了,就完成了多相机系统的全局标定.笔者提出了一种基于双平面靶标的两相机相对位姿关系的标定方法,在阐述其原理的基础上通过仿真标定与实际标定实验来验证其可行性. 1一基于双平面靶标的两相机间相对位姿关系的标定方法 1.1原理 多相机全局标定装置如图1所示,两靶标之间为刚性联接.两相机的位姿关系的标定如图2所示. 图1一多相机全局标定装置 F i g.1一 G l o b a lM u l t i-C a m e r aC a l i b r a t i o nD e v i c e 图2一两相机间相对位姿关系的标定 F i g.2一T w o-C a m e r aC a l i b r a t i o n f o rR e l a t i v eP o s eR e l a t i o n ?收稿日期:20180322 基金项目:国家自然科学基金资助项目(51345009);湖南省自然科学基金资助项目(13J J4082) 作者简介:黄东兆(1978 ),男,安徽桐城人,湖南科技大学讲师,博士,主要从事机器视觉测量二数控技术等研究.

相机标定方法

摄像机标定的方法和具体的步骤 1.理想的摄像机成像模型 在不考虑畸变的情况下,建立如图所示的摄像机模型。 物体到图像之间的转化,经历了下面四个坐标系的转换: 1.三维世界坐标系 O X Y Z w w w w 这是基于不存在误差的基础上建立的坐标系,是一个理想的模型。这是后两个模型 的参考,可以作为对比的基础。 2.摄像机坐标系Oxyz 该坐标系的原点是摄像机的光心,CCD像平面到原点的距离为f,即理想成像系统 的有效焦距,坐标系的轴与光轴重合。 3.摄像机图像坐标系'O XY O,X轴、该二维坐标系定义在CCD像平面上,其中光轴与像平面的交点定义为原点' Y轴分别平行于x、y轴。 4.计算机像平面坐标系Ouv 在这一坐标系中,原点在图像的左上角。这是一个建立在CCD像平面中的二维坐标 系,u轴和v轴组成坐标系,前者为水平轴,后者为垂直轴,方向向右、向下。 上面我们讨论的四个坐标系中,只有最后一个坐标系的单位是像素。前三者的单位 都是毫米。 一被测点P,其三维坐标为(x,y,z) ,摄像机坐标系为(x,y,z),其经过拍摄后, w w w

在摄像机图像坐标系中的坐标为(X,Y),最后得到计算机像面坐标系的坐标(u,v),这四步的变换过程如下图所示: 一、刚体变换(从世界坐标系到摄像机坐标系) 在刚体变换过程中世界坐标系中的一点到摄像机坐标系中的点,可以由一个旋转矩阵R以及一个平移矩阵t来描述,则存在如下刚体变换公式: 其中R为3X3的旋转矩阵(),t是一个三维平移向量,化为其次坐标形式有:

二、透视投影(相机坐标系到理想图像物理坐标系) 根据针孔模型下透镜成像焦距f,物距u和相距v的关系,以及下图可得:(注意此时的点M是摄像机坐标系的点) y是理想图像物理坐标系坐标)将上面的关系式化成其次坐标式为:(注意:x, u u 三、畸变校正 在上面所有的坐标系公式推导的过程中,我们遵循的是线性摄像机模型,但是实际的摄像机由于镜头制作工艺等原因,使摄像机获取的原始图像是含有畸变的,畸变的图像的像点、投影中心、空间点不存在共线关系,所以如果要想直接运用线性模型来描述三维世界空间的点与像点之间的关系,必须先对畸变的图像进行校正。 畸变模型矫正公式为: y为针孔线性模型计算出来的图像点坐标的理想值,(x,y)是实际的图像点的坐(x,) u u

Matlab常用工具箱及常用函数

Matlab常用工具箱 MATLAB包括拥有数百个内部函数的主包和三十几种工具包.工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包. Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱 Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱 常用函数Matlab内部常数[3] eps:浮点相对精度 exp:自然对数的底数e i或j:基本虚数单位 inf或Inf:无限大, 例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargout: 函数的输出引数个数 lasterr:存放最新的错误信息 lastwarn:存放最新的警告信息 MATLAB常用基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle)

halcon单相机标定详细说明

相机标定 1 相机标定基本原理 1.1 相机成像模型 目前大多数相机模型都是基于针孔成像原理建立的,因为针孔成像原理简单,并且能满足建模的要求。除此之外还有基于应用歪斜光线追踪法和近轴光线追踪法的成像模型[1]。针孔成像虽然已经展示出了相机的成像原理,但是由于针孔成像是理想的物理模型,没有考虑相机本身的尺寸、镜头与相机轴心的偏斜等因素的影响,因此精度很低,不能满足工业机器视觉的要求。为了使相机模型能高精度的反应相机的实际成像过程,需要再针孔成像模型的基础上考虑镜头畸变等的因素。 图1 针孔成像 基于针孔成像原理建立的相机的成像模型,如下图所示。在相机的成像模型中,包含有几个坐标系分别是世界坐标系、相机坐标系、图像坐标系,相机的成像过程的数学模型就是目标点在这几个坐标系中的转化过程。 图2 针孔成像模型 (1)世界坐标系(X w,Y w,Z w),就是现实坐标系,是实际物体在现实世界中的数学描述,是一个三维的坐标空间。 (2)摄像机坐标系(X c, Y c),以针孔相机模型的聚焦中心为原点,以摄像机光学轴线为Z c轴 (3)图像坐标系:分为图像像素坐标系和图像物理坐标系 为了便于数学描述将图像平面移动到针孔与世界坐标系之间。如下图所示。

图3 将相机平面移至针孔与目标物体之间后的模型 1.2 坐标系间转换 从世界坐标系到相机坐标系: P(X c ,Y c ,Z c )=R(α,β,γ)?P(X w ,Y w ,Z w )+T 每一个世界坐标的对象都可以通过旋转和平移转移到相机坐标系上。将目标点旋转θ角度,等价于将坐标系方向旋转θ。如下图所示,是二维坐标的旋转变换,对于三维坐标而言,旋转中绕某一个轴旋转,原理实际与二维坐标旋转相同。如果,世界坐标分别绕X ,Y 和Z 轴旋转α,β,γ,那么旋转矩阵分别为R (α),R (β),R (γ) 图4 坐标旋转原理 R (α)=[10 00cosα ?sinα0sinαcosα] (1-1) R (β)=[cosβ 0sinβ0 10?sinβ 0cosβ ] (1-2)

Matlab-并行计算工具箱函数基本情况介绍

Matlab 并行计算工具箱的使用 Matlab并行工具箱的产生一方面给大规模的数据分析带来了巨大的效益,另一方面且引入了分布式计算,借助matlab自身携带的MDCE,可以实现单机多核并行运行或者是同一个局域网络中的多台处理器组成的机群的并行运行。 个人以为后者是前者的拓展,并行计算的最初目的是为了解决串行计算速度不能满足某些复杂运算而产生的技术,能够借助较低配置的处理,协同工作处理同一个程序,但是他们之间是并不会交互的,仅仅是有核心主机—client进行大任务的分解,而后将它们分配给各个处理器,由处理器共同完成。所以说并行计算的实质还是主从结构的分布式计算。这里体现了数量的优势,同一个程序串行运行可能需要40个小时,但是若是由10台处理器同时跑,则有望将计算时间降低到接近4个小时的水平。而且这十台处理器可以是一个多个多核CPU组成,例如一个8核心CPU和1个2核心CPU。也可以是由5个2核心CPU组成,形式灵活。 而分布式计算在并行计算的基础上有功能上的扩展,一个很重要的方面就体现在,上述的十个处理器之间可以进行交互式通讯这是基于MPI(message passing interface)实现的,这对于大规模的分布式控制系统是很有需要的,也就是说,各个处理器之间要实现数据的实时传递,有时是共享某些信息,有时是lab1需要lab2的某些信息。相对于单纯的并行计算来说,后者将交互式通讯扩展到了labs之间,而不仅仅是lab和client之间。 Matlab 并行计算工具箱中的函数有: 1.Parfor (FOR循环的并行计算); 函数1:matlabpool 其作用是开启matlab并行计算池,单独的命令会以默认的配置开启并行计算环境。 函数2:parfor For循环的并行计算替代关键词,需要注意的是,parfor不能像for一样嵌套。 但是外部的parfor内部可以嵌套for循环。 函数3:batch 用于在worker上运行matlab脚本或者是matlab函数。 例如:batch(‘script.m’) 语句会根据默认并行配置文件定义的集群将script脚本文件运行在worker上。 2.批处理 函数1:batch,其语法有: j = batch('aScript') j = batch(myCluster,'aScript') j = batch(fcn,N,{x1, ..., xn}) j = batch(myCluster,fcn,N,{x1,...,xn}) j = batch(...,'p1',v1,'p2',v2,...) 其中的变量: J The batch job object. 'aScript'The script of MATLAB code to be evaluated by the MATLAB pool job. myClusterCluster object representing cluster compute resources. fcnFunction handle or string of function name to be evaluated by the MATLAB pool job.

Matlab如何添加新的工具箱经验总结

Matlab如何添加新的工具箱-经验总结 最近在学习遗传算法与免疫算法,所以涉及到matlab的工具箱的应用,尤其gads 工具箱,所以在网上下载了一些工具箱,但是不会用,在网上找了点资料,留着以后也可以用。 1,我是单独下载的工具箱,把新的工具箱拷贝到某个目录(我的是C:\Program Files\MATLAB\R2010\toolbox)。 注意:你要是添加的很多个m文件,那就把这些m文件直接拷到再下一层你想要的工具箱的文件夹里 例如,我要添加的是遗传工具箱,在刚才的文件夹下我已经有gads(遗传工具箱)文件夹了,但有的m文件还没有,我就把新的m文件统统拷到C:\Program Files\MATLAB\R2010\toolbox\gads目录下了 如果你连某工具箱(你打算添加的)的文件夹都没有,那就把文件夹和文件一起拷到C:\Program Files\MATLAB\R2010\toolbox下。 先把工具箱保存到MATLAB安装目录的根目录下面,然后运行 matlab---->file---->set path---->add folder 然后把你的工具箱文件夹添加进去就可以了 2 在matlab的菜单file下面的set path把它(C:\Program Files\MATLAB\R2010\toolbox\gads)加上。 3 把路径加进去后在file→Preferences→General的Toolbox Path Caching 里点击update Toolbox Path Cache更新一下。 记得一定要更新!我就是没更新,所以添加了路径,一运行还是不行。 后来更新了才行。 4 用which newtoolbox_command.m来检验是否可以访问。如果能够显示新设置的路径,则表明该工具箱可以使用了。 这个我也不知道怎么用。怎么检验?在命令窗口输入which newtoolbox_command.m?还是打开which newtoolbox_command.m文件(我搜索了,没找到这个文件啊)我一直没搞懂。 我的matlab小经验 我前几天刚刚接触matlab 由于要用MATLAB遗传算法工具箱编程,我直接在安装好的matlab命令栏输入程序结果提示找不到函数后来我才了解到MATLAB自带的工具箱是GADS,在此环境下运行程序会出现函数未定义等问题,

Matlab摄像机标定工具箱的使用说明

摄像机标定工具箱 1.1 Matlab 摄像机标定工具箱 工具箱下载:https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/download/index.html 说明文档:https://www.doczj.com/doc/e513323949.html,/bouguetj/calib_doc/ 安装:将下载的工具箱文件toolbox_calib.zip 解压缩,将目录toolbox_calib 拷贝到Matlab 的目录下。 采集图像:采集的图像统一命名后,拷贝到toolbox_calib 目录中。命名规则为基本名和编号,基本名在前,后面直接跟着数字编号。编号最多为3位十进制数字。 1.1.1 标定模型 内参数标定采用的模型如式(1-1)所示,Brown 畸变模型式(1-2)所示。 ???? ??????=????????????????????=??????????11//100011100c c in c c c c y s x y x M z y z x v k u k k v u (1-1) 式中:(u , v )是特征点的图像坐标,(x c , y c , z c )是特征点在摄像机坐标系的坐标,k x 、k y 是焦距归一化成像平面上的成像点坐标到图像坐标的放大系数,k s 是对应于图像坐标u 、v 的摄像机的x 、y 轴之间不垂直带来的耦合放大系数,(u 0, v 0)是光轴中心点的图像坐标即主点坐标,(x c 1, y c 1)是焦距归一化成像平面上的成像点坐标。k s =αc k x ,αc 是摄像机的实际y 轴与理想y 轴之间的夹角,单位为弧度。 ?????++++++=++++++=1 142123654221112124113654221112)2()1()2(2)1(c c c c c c c c c d c c c c c c c c c c d c y x k y r k r k r k r k y y x r k y x k r k r k r k x x (1-2) 式中:(x c 1d , y c 1d )是焦距归一化成像平面上的成像点畸变后的坐标,k c 1是2阶径向畸变系数,k c 2是4阶径向畸变系数,k c 5是6阶径向畸变系数,k c 3、k c 4是切向畸变系数,r 为成像点到摄像机坐标系原点的距离,r 2= x c 12 + y c 12。 1.1.2 操作界面 将Matlab 的当前目录设定为含有标定工具箱的目录,即toolbox_calib 目录。在Matlab 命令窗口运行calib_gui 指令,弹出图1所示选择窗口。 图1 内存使用方式窗口 图1窗口中,具有两个选项,分别是“Standard ”和“Memory efficient ”。如果点击选择“Standard ”,则将目录中的所有图像读入内存中,所需内存较大。如果点击选择“Memory efficient ”,则将目录中的图像按照需要每次一幅图像读入内存中,所需内存较小。在选择了

工业相机标定深度解析

工业相机标定深度解析 机器视觉的基本任务之一是从摄像机获取图像信息并计算三维空间中物体的几何信息,以由此重建和识别物体。而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。在大多数条件下,这些参数必须通过实验与计算才能得到,这个过程被称为摄像机定标(或称为标定)。标定过程就是确定摄像机的几何和光学参数,以及摄像机相对于世界坐标系的方位。由于标定精度的大小,直接影响着计算机视觉(机器视觉)的精度。因此,只有做好了摄像机标定工作,后续工作才能正常展开,可以说,提高标定精度也是当前科研工作的重要方面。 摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可用成像变换(即摄像机成像模型)来描述。摄像机成像模型分为线形模型和非线性模型。针孔成像模型就属于线形摄像机模型,本文就讨论在这种模型下,某空间点与其图像投影点在各种坐标系下的变换关系。 总的来说,摄像机标定可以分为传统的摄像机标定方法和摄像机自标定方法两大类。传统摄像机标定的基本方法是在一定的摄像机模型下,通过对特定标定参照物进行图像处理,并利用一系列数学变换公式计算及优化,来求取摄像机模型内部参数和外部参数。然而,该方法在场景未知和摄像机任意运动的一般情况下,其标定很难实现。20世纪90年代初,Faugeras,Luong,Maybank等人首次提出了摄像机自标定方法。这种自标定法利用摄像机本身参数之间的约束关系来标定,而与场景和摄像机的运动无关,所以更为灵活。 一、传统标定方法 传统的摄像机标定方法按照标定参照物与算法思路可以分成若干类,如基于3D立体靶标的摄像机标定、基于2D平面靶标的摄像机标定、以及基于径向约束的摄像机标定等。维视图像公司的CCAS双目标定系统运用的就是传统标定方法。

matlab常用工具箱函数注释

说明:函数首字母皆为小写! 1 线性代数 1.1 矩阵分析 Norm 矩阵或向量的范数Null 零空间 Normest 估计矩阵的2范数Orth 正交化 Rank 矩阵的秩Rref 简化矩阵为梯形形式 Det 矩阵行列式的值Subspace 两个子空间的夹角 1.2 线性方程 \和/ 线性方程求解Lu LU分解 Inv 矩阵的逆Ilu 不完全的LU分解Cond 矩阵条件数Luinc 不完全的LU分解Condest 1范条件数估计Qr QR分解 Lsqnonneg 非负线性最小二乘Chol Cholesky分解 Cholinc 不完全cholesky分解Pinv 伪逆 Linsolve 带特殊控制的线性方程求解Lscov 已知协方差的最小二乘1.3 特征值和奇异值 Eig 特征值和特征向量Polyeig 多项式特征值问题 Svd 奇异值分解Condeig 已知特征值求条件数 Eigs 稀疏矩阵的特征值Hess Hessenberg型 Svds 稀疏矩阵的奇异值和向量Qz 广义特征值的QZ分解 Poly 特征多项式Schur Schur分解 1.4 矩阵函数 Expm 矩阵指数Sqrtm 矩阵平方根 Logm 矩阵对数Funm 计算一般矩阵函数 2 曲线拟合工具箱函数 2.1 拟合数据预处理 Cftool 打开GUI形式的工具箱Smooth 对数据点做平滑处理

Excludedata 去除异常数据点 2.2 数据拟合 Cftool 打开GUI形式工具箱Fittype构造一个曲线拟合对象 Fit用指定的拟合模型对数据 进行拟合Get 获取拟合选项结构体的某个字段名及其值 Fitoptions 创建或修改拟合选项结构 体 Set 设置拟合选项某字段值2.3 拟合类型和方法 Argnames 曲线拟合类型(或函数)对 象的输入参量名Indepnames 曲线拟合类型(或函数)的 自变量 Category 曲线拟合类型(或函数)的 拟合类型Islinear 判断曲线拟合类型(或函数) 是否为线性 Coeffnames 曲线拟合类型(或函数)的 系数名称Numargs 曲线拟合类型(或函数)的 输入参数个数 Dependnames 曲线拟合类型(或函数)的 因变量Numcoeffs 曲线拟合类型(或函数)的 拟合系数个数 Feval 计算曲线拟合类型(或函 数)Probnames 曲线拟合类型(或函数)的 问题相关参数名称 Fittype创建一个曲线拟合类型(或 函数)Type 曲线拟合类型(或函数)的 名称 Formula 曲线拟合类型(或函数)的 公式 2.4 曲线拟合的方法(和2.3相同的没再写) Cfit 创建一个曲线拟合 函数对象 Confint 拟合系数的值的置信区间 Coeffvalues 通过拟合得到的拟 合函数的系数值Predint 在任意点处用拟合函数计算得到 的函数值的95%置信区间 Differentiate 求取拟合函数的导 数 Integrate 拟合函数的积分 Plot 绘制拟合曲线图Probvalues 拟合函数中的与问题相关的参数 值 还包括除去表2.3中fittype外所有函数,解释同上。 2.5 拟合数据后处理

相关主题
相关文档 最新文档