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
u
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
t
㈨
[0c0
‘
requ
0
,
000。O0 ■ _
I …~ r、~・……r…nn1、
Ox0002时是应答。同样道理,我们也可以利用
bo躲;10g 0 88 o
O
。
o
0
。
0
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条)