一、 实验任务
1.学习利用摄像机内参数对标定图像正畸
2.学习摄像机外参数标定
3.学习利用单应性矩阵对平面内目标进行测量
二、 实验过程
实验平台:MATLAB R2016a Toolbox_calib工具箱
拍摄靶标图像后,进入目录下打开标定工具箱主界面:
进入目录后,Load之前标定的内参:
经查阅资料了解:fc中两个元素,分别为fx、fy:其中fx = f/dx,f为焦距,单位mm;dx表示x方向像素宽度,单位毫米,1/dx 表示x方向1mm内有多少个像素。因此fx表示使用像素来描述x轴方向焦距的长度;fy同理。
在《机器视觉测量与控制》中标定部分这样描述内参:fc中的两个数据分别是kx,ky,即焦距归一化成像平面上的成像点坐标 到 图像坐标的放大系数。 cc为光轴中心点的图像坐标(u0,v0),又称主点坐标,单位为像素。alpha_c为对应于图像坐标v的摄像机的实际Y轴与理想Y轴之间的夹角,单位为弧度。kc为畸变系数1~5。err为将网格角点反投影到图像空间的误差的标准差,单位为像素。
之后进入测量图片的目录,点击标定外参数:
点击角点后:
《机器视觉测量与控制》:在外参数标定结果中: Tc_ext 为靶标坐标系原点在摄像机坐标系中的位移向量,单位为 mm; omc_ext 为对应于姿态矩阵的 rodrigues 旋转向量; Rc_ext 为旋转矩阵; err 为将网格角点反投影到图像空间的误差的标准方差,单位为像素。
使用游标观察得到测量的8个点的坐标:
三、 测试过程
计算程序如下:
点击展开Matlab代码
%% import image
% i = imread('IMG8.jpg');
% imshow(i);
%% H matrix
Min = [fc(1),0,cc(1),0; 0,fc(2),cc(2),0; 0,0,1,0];
Mw = [Rc_ext,Tc_ext; 0,0,0,1];
H = Min * Mw;
%% compute:A\B\C\D\E\F\G\H
point = [988, 2317, 2125, 808, 1052, 2232, 2068, 897;...
1243, 1494, 2500, 2288, 1334, 1553, 2418, 2228];
point = [point;...
1,1,1,1,1,1,1,1];
result = pinv(H)*point*H(3,4)
len_AB = ((result(1,1)-result(1,2))^2 +...
(result(2,1)-result(2,2))^2)^0.5
len_CD = ((result(1,3)-result(1,4))^2 +...
(result(2,3)-result(2,4))^2)^0.5
len_BC = ((result(1,2)-result(1,3))^2 +...
(result(2,2)-result(2,3))^2)^0.5
len_DA = ((result(1,4)-result(1,1))^2 +...
(result(2,4)-result(2,1))^2)^0.5
len_EF = ((result(1,5)-result(1,6))^2 +...
(result(2,5)-result(2,6))^2)^0.5
len_GH = ((result(1,7)-result(1,8))^2 +...
(result(2,7)-result(2,8))^2)^0.5
len_FG = ((result(1,6)-result(1,7))^2 +...
(result(2,6)-result(2,7))^2)^0.5
len_HE = ((result(1,8)-result(1,5))^2 +...
(result(2,8)-result(2,5))^2)^0.5
经过测量得到如下表格:
角点 | 图像坐标/像素 | 位置/mm | 边 | 测量长度/mm | 相对误差 |
---|---|---|---|---|---|
A | 988;1243 | (-71.87,-76.80) | AB | 442.28 | 0.69% |
B | 2317;1494 | (-68.17,365.46) | CD | 436.26 | -0.69% |
C | 808;2288 | (-271.81,-360.85) | BC | 340.02 | -1.73% |
D | 2125;2500 | (-280.15,-75.33) | DA | 352.02 | 1.73% |
E | 1052;1334 | (-280.15,-75.34) | EF | 392.46 | 0.58% |
F | 2232;1553 | (-280.15,-75.35) | GH | 387.97 | -0.58% |
G | 2068;2418 | (-280.15,-75.36) | FG | 292.29 | -1.50% |
H | 897;2228 | (-280.15,-75.37) | HE | 301.22 | 1.50% |
四、 总结部分
摄像机模型中图像坐标系与摄像机坐标系的转换关系如下所示:
我认为内参中的kx、ky已经包含了相机的像素尺寸(1um)信息,即表达为焦距有多少个像素。因此不需要手动改为mm量纲。
同时,我的实验中,zc使用外参中的pz来代替,用来估计像素点的世界坐标(不知对不对)。