实验三 MATLAB图像处理基本操作及摄像机标定(DLT)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 MATLAB图像处理基本操作及摄像机标定(DLT) 实验三 Matlab图像处理基本操作及摄像机标定(DLT) (DLT)1、实验目的
通过应用Matlab的图像处理基本函数,学习图像处理中的一些基础操作和处理。
理解摄像机标定(DLT)方法的原理,并利用程序实现摄像机内参数和外参数的估计。。
2、实验内容:
1) 读取一幅图像并显示。
2) 检查内存(数组)中的图像。
3) 实现图像直方图均衡化。
4) 读取图像中像素点的坐标值。
5) 保存图像。
6) 检查新生成文件的信息。
7) 使用阈值操作将图像转换为二值图像。
8) 根据RGB图像创建一幅灰度图像。
9) 调节图像的对比度。
10) 在同一个窗口内显示两幅图像。
11) 掌握matlab命令及函数,获取标定块图像的特征点坐标。 12) 根据摄像机标定(DLT)方法原理,编写Matlab程序,估计摄像机内参数和12) 外参数。
3、实验要求:
1) 选取一幅图像,根据实验内容1)—10)给出结果。
2) 根据给定的标定块图像及实验内容11),12)进行编程实验。 3) 书写实验报告
4、实验设备
1) 微机。
2) Matlab软件。
5、实验原理
DLT变换:
Abdal-Aziz和Karara于70年代初提出了直接线性变换像机定标的方法,他们从摄影测量学的角度深入的研究了像机图像和环境物体之间的关系,建立了像机成像几何的线性模型,这种线性模型参数的估计完全可以由线性方程的求解来实现。
直接线性变换是将像点和物点的成像几何关系在齐次坐标下写成透视投影矩阵的形式:
X,,wu,,,, Y,,w,,,svP 3,4,,,,Zw ,,1,,,,1,,
为图像坐标系下的点的齐次坐标,为世界坐标系下的空其中,,,,
u,v,1X,Y,Zwww
间点的欧氏坐标, P为3*4的透视投影矩阵,为未知尺度因子。
消去S,可以得到方程组:
pX,pY,pZ,p,puX,puY,puZ,pu,011w12w13w1431w32w33w34
pX,pY,pZ,p,puX,puY,puZ,pu,021w22w23w1431w32w33w34
当已知N个空间点和对应的图像上的点时,可以得到一个含有2*N个方程的方程组: AL,0
其中A为(2N*12)的矩阵, L为透视投影矩阵元素组成的向量:
T ,,p,p,p,p,p,p,p,p,p,p,p,p111213142122232431323334
||AL||像机定标的任务就是寻找合适的L,使得为最小,即 min || AL || L
给出约束: p,134
'T,1T L,,(CC)CB
L‘为L的前11个元素组成的向量, C为A前11列组成的矩阵, B为A前12列组成的向量。
6、程序代码
I=imread ('DSCN0831.JPG');
imshow(I);
whos
figure,
I1=rgb2gray(I);
figure,imshow(I1)
imhist(I1);
I2=histeq(I1)
figure,imshow(I2)
figure,imhist(I2)
a=imread('DSCN0831.JPG')
imwrite(I1,'DSgray.jpg');
imwrite(I2,'DSgrayeq.jpg');
inf=imfinfo('DSCN0831.JPG') ?
level=graythresh(I2);
bw=im2bw(I2,level);
figure,imshow(bw)
whos
I3=imadjust(I2,stretchlim(I2),[0 1]);
figure,imshow(I3);
a=imread('DSCN0831.JPG');
b=imread('DSgray.jpg');
subplot(1,2,1),imshow(a);
subplot(1,2,2),imshow(b);
clear;
xpot=[];
ypot=[];
imshow('DSCN0831.JPG');
hold on;
n=input('Please input the number of pot:'); for i=1:n [x,y]=ginput(1);
plot(x,y,'or');
text(x+1,y+1,num2str(i));
xpot=[xpot,x];
ypot=[ypot,y];
end
[xpot;ypot]
[xw;yw;zw]
a=[xw',yw',zw',ones([100 1]),zeros([100
4]),(-1)*xpot'.*xw',(-1)*xpot'.*yw',(-1)*xpot'.*zw',-
1*xpot';zeros([1
00 4]),xw',yw',zw',ones([100 1]),(-1)*ypot'.*xw',(-1)*ypot'.*yw',(-
1)*ypot'.*zw',-1*ypot'];
c=a(:,1:11);
b=a(:,12);
l=(-1)*(c'*c)^(-1)*c'*b
7、运行结果
, 图像信息:
Filename: 'DSCN0831.JPG'
FileModDate: '21-十月-2011 21:29:34'
FileSize: 160501
Format: 'jpg'
FormatVersion: ''
Width: 1024
Height: 768
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
ImageDescription: ' '