摄像机投影成像 matlab,使用matlab仿真三维物点的透视投影成像.doc

使用matlab仿真三维物点的透视投影成像.doc

使用matlab仿真三维物点的透视投影成像

⒈仿真的目的和要求:

理解摄像机透视投影模型中的每一个参数的意思,然后在matlab中仿真三维物点根据摄像机的透视投影模型计算出像点,并作出其图像。

⒉仿真的内容以及原理:

内容:深入理解摄像机透视投影模型中摄像机内部参数和外部参数的含义;在matlab绘制一个立方体画出其中的12个点,用红色表示这些点;设定摄像机的内外参数写出其转换矩阵,根据透视投影模型计算出像点,根据像点坐标的含义绘制出图像。

原理:摄像机的透视投影模型中,像点坐标与物体世界坐标的转换关系用转换矩阵表示为式2—1:

(式2—1)

其中,u,v分别是像点坐标系的u轴坐标值和v轴坐标值;= (f是摄像机焦距,dx是每一像素在x轴方向上的物理尺寸),= (f是摄像机焦距,dy是每一像素在y轴方向上的物理尺寸);,是在图像坐标系中的中心点坐标值(也是摄像机光轴与图像坐标平面的交点);R是t分别是旋转矩阵和平移矩阵,是指世界坐标系和摄像机坐标系的关系,即通过这个矩阵的变换可以使摄像机坐标系和世界坐标系重合,R和t可表示为式2—2:

(式2—2)

在式2—2中有,

影像外方位角元素-w-k系统以Y轴为主轴时是指:以Y为主轴旋转角,然后绕X轴旋转w角,最后绕Z轴旋转k角(主轴是指在旋转过程中空间方向不变的一个固定轴),t由在三个坐标轴上的三个平移值来表示;根据这个模型就可以计算出像点坐标。

3.matlab中源程序的编制:

摄像机的内部参数应先确定,日常使用中相机的焦距为:f=3.4mm,像素大小为1280×1024,dx=dy=30mm;故由此可计算出= == =0.1134,通常,在图像坐标系中心故取值为=1280/2=640,=1024/2=512;外部参数则由程序函数中输入,其决定因子为6个元素,即影像外方位角元素-w-k,平移因子tx,ty,tz。

根据以上的分析理解可以编制源程序如下:

function cparameter(ag1,ag2,ag3,tx,ty,tz)

%设定摄像机的外部参数:旋转角和平移量,ag1,ag2,ag3分别代表影像外方位角,w,k,tx,ty,tz分别为三个坐标轴上的平移量。

%其内部参数给定为焦距:f=3.4mm,单位像素在x轴y轴的物理尺寸为:dx=dy=30mm

%像素大小为1280×1024。

x=[0,300,300,0,0,300,300,0,0,300,300,0];

y=[0,0,400,400,0,0,400,400,0,400,0,400];

z=[0,0,0,0,500,500,500,500,-500,-500,-500,-500];

%设定三维立方体的12个点的位置。

colordef black;

subplot(211),setp=stem3(x,y,z);

title('仿真的三维物点图');

set(setp(1),'MarkerFaceColor','red');

%将这12个点用红色画出。

view(-30,30);

u=zeros(1,12),v=zeros(1,12);

k1=[1,1,1,1,1,1,1,1,1,1,1,1];

M1=[0.1134,0,640,0;0,0.1134,512,0;0,0,1,0];

%摄像机内部参数矩阵

a1=cos(ag1)*cos(ag3)-sin(ag1)*sin(ag2)*sin(ag3);

a2=-cos(ag1)*sin(ag3)-sin(ag1)*sin(ag2)*cos(ag3),a3=-sin(ag1)*cos(ag2);

b1=cos(ag2)*sin(ag3),b2=cos(ag2)*cos(ag3),b3=-sin(ag2);

c1=sin(ag1)*cos(ag3)+cos(ag1)*sin(ag2)*sin(ag3);

c2=-sin(ag1)*sin(ag3)+cos(ag1)*sin(ag2)*cos(ag3),c3=cos(ag1)*cos(ag2);

M2=[a1,a2,a3,tx;b1,b2,b3,ty;c1,c2,c3,tz;0,0,0,1];

%摄像机外部参数矩阵

Q=[u;v;k1],W=[x;y;z;k1];

Q=M1*M2*W;

u=Q(1,:),v=Q(2,:),subplot(212),plot(u,v,'*');

title('透视投影模型得到的像点图');

4.仿真结果以及分析:

①设定影像外方位角=0,w=0,k=0;平移量tx=-200,ty=-100,tz=500

在matlab命令行中输入cparameter(0,0,0,-200,-100,500)即可得到图像如