昨天完成了用最小二乘法进行相机标定的实验。
1. 最小二乘法进行相机标定的原理
1.1 坐标系变换
将实物拍到相机的胶片上需要进过几个坐标系的变换:
世界坐标系—>相机坐标系—成像坐标系—>像素坐标系
在坐标系变换的过程中可以看做是将变换矩阵线性作用于齐次向量
从世界坐标系变换到相机坐标系:
其中为世界坐标系下的坐标,为相机坐标系下的坐标,为像素坐标系下的坐标。
那么可以得到:
我们已知世界坐标系下的坐标和像素坐标下的坐标,求解矩阵M中的未知量就是对相机进行标定。
1.2 最小二乘法求解
用最小二乘法进行求解就是要使的U,那么就要求达到最小,就是要求:
所以只要求解最小特征值对应的特征向量,就可以求解出最优解。
2.代码
[M,N]=size(P);
%矩阵A
for i=1:N
A(2*i-1,1:4)=[P(1:3,i);1]';
A(2*i-1,5:8)=[0 0 0 0];
A(2*i-1,9:12)=-P(4,i)*[P(1:3,i);1]';
A(2*i,1:4)=[0 0 0 0];
A(2*i,5:8)=[P(1:3,i);1]';
A(2*i,9:12)=-P(4,i)*[P(1:3,i);1]';
end
AA=A'*A;
[V D]=eig(AA);
%求解特征值和特征向量
a(1,1:3)=V(1,1:3);b(1,1)=V(1,4);[M,