3.2 硬件系统设计
系统所用硬件系统配置如下:
PC:四核i5处理器、4Gb内存、显示卡2GRAM
4 软件设计及测试
4.1 开发环境
编译器:VS2015、MATLAB2015B 视觉库:OpenCV3.0
4.2 概要设计
4.2.1 流程图
4.2.2 主要函数及实现功能
4.3 详细设计
4.3.1图像采集
本论文采用MATLAB对双目图像进行采集,摄像机用到是视觉平行的两台摄像头,如图4.1所示:
图4.1图像采集用的双目摄像头
说明:将摄像头使用USB连接线与电脑相连接,使用matlab在同一时间对图像进行采集,为了摄像头标定参数无变化,整个实验过程中需要保持摄像头位置不变,否则实验会不准确。
4.3.2立体标定
在实际拍摄中,有的摄像头会产生畸变,且采集到的图像极线相交,为了降低后续图像匹配的难度,我们需要得到两个摄像头的焦距、主点坐标、倾斜系数、畸变系数以及它们之间的旋转矢量,现多采用张定友棋盘格标定法对摄像头进行标定,他利用了摄像头拍摄的图像与实物间存在线性关系,表达式如下:
?u???K?rrs?v12????1??r3?X??Y?t????0????1?(4.2)
其中,K代表摄像机的内参数矩阵,[u v 1]表示实物投影到图像平面上的齐次坐标,[r1 r2 r3]和t是摄像机的外参数,分别代表以摄像机为中心的坐标系相对世界坐标系的旋转矩阵和平移向量。采用棋盘格能够得到多个角点的位置,解方程组得到摄像机的内外参数[15]。
Opencv3.0和MATLAB的标定都采用了张定友定标法,因为MATLAB标定工具箱较OpenCV3.0标定结果更为准确,因此,本文采用MATLAB对摄像机进行进行标定,本文用14*14,以20mm为边长的黑白棋盘格进行标定,如图4.3所示:
图4.3 14*14,20mm为边长的棋盘格标定图像
标定具体步骤如下:
(1)使用左右摄像头采集同一时间下同一标定板图像,采集过程中,应让标定图像处于摄像头视野的中间位置
(2)分别读取摄像头图像对两个摄像头进行单独标定,本文采集了15张标定图完成标定,每个摄像头的标定结果单独储存。
(3)将左右摄像头mat文件读入MATLAB的标定工具箱,进行立体标定。标定图像如下图4.4和4.5
图4.4 左摄像头标定图像集
图4.5 右摄像头标定图像集
单摄像头标定结果
相关推荐: