基于OpenCV的Matlab标定实现研究

基于OpenCV的Matlab标定实现研究


2024年4月6日发(作者:)

166 福 建 电脑 2012年第4期 

基于OpenCV的Matlab标定实现研究 

程志杰.李文锦 

(福建电力职业技术学院机电工程系福建泉州362000) 

【摘 要】:本文提出了一种新的摄像机标定方法,首先对有畸变的摄像机进行标定,给出了 

标定方法的理论依据和求解过程。实验结果表明:该方法矫正图像效果良好,具有实际的工程使 

用价值。 

【关键词】:OpenCV;标定 

1、摄像机的坐标系 

MV400型号图像采集卡。 

计算机视觉常用坐标系采用右手准则来定 使用针孔摄像机模型,其定义是: 

义,图2.1表示了三个不同层次的坐标系统,其分 

别是世界坐标系、摄像机坐标系和图像坐标系【”。 

YI2 Y13 

L 

考虑到镜头的径向崎变和切向崎变的公式变 

形为: 

—.........。.......... ...L 

y Z 

1●●●●●●,●j 

= 

—............

R 

........ ...L 

O 0 

1●● ,●,●j 

+ 

]●●

_!● 一

—.. ...。 ................L 

图1标定系统的坐标系 

巧 

1,t:y 

Z 

1.图像坐标系:图l所示的坐标系(OiXY)和 

: (1+ r +k2r )+2 。 ’+ (, +2x’ ) 

(o0uv)均为图像坐标系,(o0uv)为图像像素坐标 

Y’ y'(1+kf +k2r )+2p2 ‘Y’+ (, +2y’ ) 

系.(OiXY)为图像物理坐标系或图像实际坐标 

r。 +y 

“= ・ ”"4"C

系。 

x 

2.摄像机坐标系:摄像机成像几何关系可由 

V=L'y”+ 

图2.1表示.其中O点称为摄像机光心,X轴和Y 

公式中(Xw。Yw,Zw)是一个点的世界坐标; 

轴与成像平面坐标系的X轴和Y轴平行.Z轴为 

u,v1是点投影在图像平面的坐标,以像素为单位; 

摄像机的光轴,由点O与x、y-,z轴组成的右手直 A是摄像机的内参数矩阵;(cx,cy)是基准点(通常 

角坐标系称为摄像机坐标系 光心到成像平面的 在图像的中心);fx,fv是以像素为单位的焦距。旋 

垂直距离是摄像机的焦距 

转平移矩阵[RIt]称为外参数矩阵.用来描述物体 

3.世界坐标系:图2.1所示的坐标系(OW 围绕摄像机的刚性运动。 

XW YW zw)为世界坐标系 摄像机坐标系在环 

2.OpenCV标定及校正算法的实现 

境中的位置是随着摄像机的移动而改变的。因此 由于OpenCV所采用的张氏标定法『21和角点 

我们需要在环境中选择一个基准坐标系来描述摄 

提取算法标定结果准确而且运算效率高。所以考 

像机的位置.并且此坐标系可表述环境中任何物 虑在111atlab上实现调用OpenCV的算法程序以实 

体的物理位置.此坐标系就是用户定义的世界坐 现摄像机的标定。其算法实现过程如下: 

标系。 

11首先自制一张标定板.设定标定棋盘的正 

本系统采用陕西维视数字图像技术有限公司 方形格子数目为7x6.其边长为30mm.如图2所 

2012年第4期 福 建 电脑 167 

示。在白色方块的外围还要求留约一个格子的距 

离。并把用A4纸打印出来贴于平板上。 

图4精确角点位置计算 

子像素级角点定位的实现是基于对向量正交 

性观测来实现.即从中央点q到其领域点p的向 

图2标定板 

2)OpenCV角点提取函数cvFindChessboard— 

Corners可以用于检测标定板图像的角点以及角 

点数量。 

函数输入必须是8位的灰色的灰色或彩色图 

像,同时可以根据函数标志位nags选项,选择对输 

入图像的处理准则。其处理准则有:A)使用自适应 

阀值进行二值化。B)利用固定阀值或自适应阈值 

进行二值化之前.先使用cvNormalizeHist来均衡 

化图像亮度。C)使用其他准则(如轮郭面积。周 

长.方形形状)来去除在轮廓检测阶段检测到的错 

误方块。 

此函数试图确定输入图像是否是棋盘模式. 

并确定角点的位置。如果所有角点都被检测到且 

它们都被按照一定顺序排布(一行一行.每行从左 

到右),则函数返回非零值,如图3所示;否则在函 

数不能发现所有角点或者不能记录它们的情况 

下.函数返回0 

图3角点提取 

但这个函数有可能不能识别所有的图像点. 

所以要求角点清晰并且光线良好以及函数相关参 

数是正确的 

为了精确确定角点坐标的位置.使用cvFind— 

CornerSubPix函数来寻找精确的角点位置.它是 

通过迭代来发现具有子像素精度的角点位置或放 

射鞍点。如图4所示 

量与P点处的图像梯度正交。因而有以下表达式 

7Ip0(g—P。) 

其中 ,p 表示q的一个领域P 处的图像梯 

度,q值通过最小化 得到。通过 设为O,可以 

建立系统方程如下: 

∑(VIp ・ )・g一∑(VIp ・ ・P,)=0 

f i 

其中,q的邻域(搜索窗)中的梯度被累加。调 

用第一个梯度参数G和第二个梯度参数b.得到 

q=G一・b 

该算法将搜索窗的中心设为新的中心q,然 

后迭代,直至找到低于某个阈值点的中心位置 

3)把角点在图像坐标系和世界坐标值代人 

到cvCalibrateCamera2得到摄像机的内外参数 

(1)输入定标点的坐标,为3xN或Nx3的矩 

阵,其中N为所有视图中点的总数。 

(2)输入定标点在图像中的坐标.为2xN或 

Nx2的矩阵.其中N是所有视图中点的总数 

(3)输入不同视图中点的数目,为1xM或 

Mx1向量.其中M是视图数目 

(4)输入图像的大小.用于初始化内参数 

(5)输出内参矩阵A,其值为l

l 

0 d0

0 

y 

vo

 l

l 0 0 1 I 

(6)输出大小为4x1或lx4的畸变向量.其值 

为[衄k2 kal kd2]。 

(7)输出大小为3XM或Mx3的旋转矩阵,其 

值为旋转向量(旋转矩阵的紧凑表示方式)。 

(8)输出大小为3XM或Mx3的平移矩阵。 

这样就可以求出所需要摄像机的内部参数和 

畸变系数 

4)调用cvSave命令将摄像机的内外参数及 

崎变系数保存为XML文件 

5)将摄像机的内参数矩阵和变形系数向量输 

入到cvUndistort2函数后.可以得到校正后的图 

像。cvUndistort2通过对图像进f下转第178页1 

178 福 建 电脑 2012年第4期 

用本机Ping其他IP地址。现在来分析捕获的数 析后.接下来就是要根据“OP”字段来判断这个 

据包,从Ethereal的第一栏中,我们看到这是个 

ARP分组是ARP请求还是ARP应答的。其中以 

ARP的广播包,如图2所示。 太网的ARP分组格式如图4所示。 

£f,lE咖 州 £a 啪 {谣萄 娴 

馒忏地址长熳 

盛斟斟锱馘盼嗣x囝&图铂略∞吾堡 国 园 Q q唆 

r—— 协议地址长度 

EI t’昏 te ; eIe ar 

目的 源地 类型 硬件 协议 0P 发送端以 发送端 目的以太 日的lP地 

I N0.Time 3。u rce Deg自mI n ,olo‘o1 h 口 

1 O.OOO ̄O In ̄l_4g:6g: Bra st 脚 帅ha5 172 18,19.70 ̄ T 1 172 0 

地址 址 类型 类型 太阳地址 地址 朋地址 址 

} 2 O.OOOO31¨1teI_44:§々:qj BI"did铀st ^RP 帅0 h 5 172.18.19,s ral 172.2 

r 3 0.00004 Inre1_aa Bg“ 4删c s ^RP lotto 172,18.19.1 ’ te11 7 

I 4 ∞0052 tnt 1 44 4 日r0adc st ^RP 帅hai 172 1{.1 .16 ’tell 172,博 

|0 。 b 强 一- ¨I 强 

图4以太网ARP请求和应答的分组格式 

60: 4a (00 ;11 :11 :

 ̄ “ ・ : ” 

。 。 

j Eource:I l_4a 69■a(oo:ii:ii:4●:6q:4 a) 

如果“OP”字段的值为0x0001时是请求. 

aller ;0000

00000 000

0000 000

 ̄00 000

D1u

[0c0

requ

000。O0 ■ _ 

I …~ r、~・……r…nn1、 

Ox0002时是应答。同样道理,我们也可以利用 

bo躲;10g 0 88 o

 

 

8 38器器 0

6 od oo Ol∞u虹4

01∞2 1帅3∞O

4¨4

0器8

i:

8∞。0∞∞ ’

孤13 2a…….

::::::’:.

. ]

::

 .

… 

 

Ethereal对ICM报文和IP数据包进行分析 

l 

钾4蛳 2咻 1q O 1 q m q 

3、结束语 

图2 ARP广播包 

网络数据包的捕获与分析是网络安全应用的 

Ethereal是使用Ethernet II来解码的.Ether— 基础.网络攻击手段在数据包分析后将无所遁形. 

net II的封包格式如图3所示。 因此.防止该攻击的方法及措施可以得到有效地 

实施;另外,还可用来监测网络中的数据流量,分 

析网络故障等相关应用领域。 

参考文献: 

图3以太网封装RFC(894) 

【1】Timothyj.o’Leary.计算机科学引论(第1版)[M].北 

Ethereal可以根据“类型”字段来判断一个数 

京:高等教育出版社,2004. 

据包是IP数据报还是ARP请求/应答或RARP请 

[2】吴黎兵.计算机网络实验教程(第1版)[M].北京:机械 

求/应答。当类型为0x0806时,由图2我们看到该 

工业出版社.2007. 

数据包为ARP数据包。Ethereal判断出是ARP解 

[3】顾尚杰.计算机通信网络基础(第1版)[M].北京:电子 

工业出版社.2000. 

(上接第167页) 

行变换来抵消径向和切向的镜头变形.对每个图 

角点提取法算法,在这些基础上开发的标定程序, 

像的象素计算其在输入图像的位置.然后通过双 

结果准确.而且其中的函数在设计和汇编时被In. 

线性插值来计算输出图像的像素值。 

tel公司做了优化,因而具有很高的性能。本文实 

6)编写matlab和VC++的接口函数。实现 

验表明:基于OpenCV开发的标定程序可以有效 

matlab对VC的摄像机标定程序的调用.其标定 

的应用到实际的视觉系统中。 

程序是dU文件.由于所使用的pc机是32位机, 

所以其文件扩展名为mexw32。 

3、实验结果 

1.内参与畸变系数 

根据Zhang标定算法求得摄像机内参矩阵 

为: 

7 

A= 

=1l 

0 

310 

. 

28 1 30 

 

00

]1I 

图5校正前图 图6校正后图 

0 0 1

同时求得畸变系数分别 

参考文献: 

k2 l 2】=[-0.3603 ol1447-0.0024—0.00121 

【1】贾云得.机器视觉rM】.北京:科学出版社,2000 

2.校正前后效果,如图5和6所示。 

[2]Marr著.姚正国等译.视觉计算理论.北京:科学出版 

4、结论 

社.1988. 

OpenCV采用张氏标定法和Jean2Yves Bouget 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1712392694a2051564.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信