1、综合训练三辽宁工程技术大学本科生综合训练报告书教学单位 测绘学院 专 业 测绘工程名 称 特征提取 班 级 测绘14-3班学生姓名 曹辰 学 号 1404070302 指导教师 徐辛超 一、 目的要求 目的和要求:理解遥感图像特征提取的方法及基本原理,达到培养学生独立完成遥感图像特征提取的能力;要求学生借助编程软件,实现点、线特征的提取。通过熟悉提取过程进一步理解特征提取领会实现过程与基本原理间的对应关系。二、 仪器设备实习时间:6月15日实验地点:博文楼 116刘思琪分配工作并完成成果汇总曹辰遥感图像的点特征提取,并解释语句程序的含义高晓鹏遥感图像的线特征提取,并解释语句程序的含义李鹏年通过
2、点、线特征提取对特征提取进一步加深理解使用仪器设备:笔记本电脑、MATLAB 7.0三、 综合训练内容 1、点特征提取(1)Moravec点特征提取算子clcclearI=imread(C:UsersAdministratorDesktop145.bmp);originalmap=I;if isrgb(I) I=rgb2gray(I); %将彩色图像转换为灰度图像 end I=double(I); %转换为双精度图像row,column=size(I); w1 = floor(5/2);%确定窗口大小w2 = 5;step=w1;ir=7000;%设置阈值num=0;%得到特征点的坐标xc=;
3、yc=;tic;for i=w1+1:1:row-w1-1 if i+w2row-w1-1 continue; end for j=w1+1:1:column-w1-1 if j+w2column-w1-1 continue; end interest=0; %兴趣值 v1=0;v2=0;v3=0;v4=0; for k=-step:step-1 %计算纵向相邻像素灰度差的平方和 v1=v1+(I(i+k,j)-I(i+k+1,j)2; %计算125度斜线方向相邻像素灰度差的平方和 v2=v2+(I(i+k,j+k)-I(i+k+1,j+k+1)2; %计算横相邻像素灰度差的平方和 v3=v3
4、+(I(i,j+k)-I(i,j+k+1)2; %计算45度斜线方向相邻像素灰度差的平方和 v4=v4+(I(i+k,j-k)-I(i+k+1,j-k-1)2; end %取v1,v2,v3,v4中最小者作为像素(c,r)的兴趣值 interest=min(v1,v2,v3,v4); if interestir %/最大兴趣值与阈值比较 num=num+1; pointx(num)=j; pointy(num)=i; yc=yc,i; xc=xc,j; end endend%图像中显示特征点figure(4);imshow(originalmap);hold on;plot(xc,yc,R*)
5、;axis on;title(图像中显示特征点);xlabel(图像的列数);ylabel(图像的行数);toc;t=toc;disp(本程序的运行时间为,num2str(t),秒。);(2)Forstner点特征提取算子clcclearI=imread(C:UsersLBSDesktopMoravec MATLABgirl.bmp);originalmap=I;if isrgb(I) I=rgb2gray(I); %将彩色图像转换为灰度图像 end I=double(I); %转换为双精度图像row,column=size(I);w1 = 5;%确定窗口大小w2 = 5;k=floor(w1
6、/2);step=w1;iq=0.65;%设置阈值ir_w=2.5;num=0;%得到特征点的坐标xc=;yc=;tic;sum_w=0;count_w=0;for i=k+1:row-k for j=k+1:column-k %协方差矩阵 G0=0;G2=0;G1=0; for m=i-k:i+k-1 for n=j-k:j+k-1 G0=G0+(I(m+1,n+1)-I(m,n)2; G2=G2+(I(m,n+1)-I(m+1,n)2; G1=G1+(I(m+1,n+1)-I(m,n)*(I(m,n+1)-I(m+1,n); end end DetN=G0*G2-G1*G1; trN=G0
7、+G2; if trN=0 ww(i,j)=0; q(i,j)=0; else ww(i,j)=DetN/trN; q(i,j)=DetN*4/trN/trN; end sum_w=sum_w+ww(i,j); count_w=count_w+1; endendavg_w=sum_w/count_w;for i=k:w2:row-w1 if i+w2row-w1 continue; end for j=k:w2:column-w1 if j+w2column-w1 continue; end max_w=0 max_x=0;max_y=0; for mh=1:w2 for mw=1:w2 if
8、 (max_wir_w*avg_w&q(i+mh,j+mw)iq) %/最大兴趣值与阈值比较 num = num+1; pointx(num)=max_x; pointy(num)=max_y; yc=yc,max_y; xc=xc,max_x; end endendfigure;imshow(originalmap);hold on;plot(xc,yc,R*);axis on;title(图像中显示特征点);xlabel(图像的列数);ylabel(图像的行数);2、线特征提取(1)Robert线特征提取算子%Robert算子functionans=robert(I);ans=zeros(
9、size(I);Isize=size(I);for i=1:Isize(1)-1 for j=1:Isize(2)-1 aa=I(i,j)-I(i+1,j); bb=I(i,j)-I(i,j+1); ans(i,j)=abs(aa)+abs(bb); if ans(i,j)50 ans(i,j)=255; else ans(i,j)=0; end endEnd(2)Soble线特征提取算子%sobel算子functionans=sobel(I);ans=zeros(size(I);Isize=size(I);I=double(I);fx=0;fy=0;for i=2:Isize(1)-1 fo
10、r j=2:Isize(2)-1 fx=(I(i-1,j+1)+2*I(i,j+1)+I(i+1,j+1)-(I(i-1,j-1)+2*I(i,j-1)+I(i+1,j-1); fy=(I(i+1,j-1)+2*I(i+1,j)+I(i+1,j+1)-(I(i-1,j-1)+2*I(i-1,j)+I(i-1,j+1); ans(i,j)=sqrt(fx*fx+fy*fy);% if ans(i,j)4 %160 ans(i,j)=255; else ans(i,j)=0; end endend% tp=min(min(ans);% ans=ans+tp;ans=uint8(ans);(3)pr
11、ewiit线特征提取算子%prewitt算子functionans=prewitt(I);ans=zeros(size(I);Isize=size(I);I=double(I);fx=0;fy=0;for i=2:Isize(1)-1 for j=2:Isize(2)-1 fx=(I(i-1,j+1)+I(i,j+1)+I(i+1,j+1)-(I(i-1,j-1)+I(i,j-1)+I(i+1,j-1); fy=(I(i+1,j-1)+I(i+1,j)+I(i+1,j+1)-(I(i-1,j-1)+I(i-1,j)+I(i-1,j+1); ans(i,j)=sqrt(fx*fx+fy*fy);
12、 if ans(i,j)130 ans(i,j)=255; else ans(i,j)=0; end endendans=uint8(ans);(4)拉普拉斯线特征提取算子I=imread(C:UsersAdministratorDesktop123.bmp);subplot(2,2,1);imshow(I);title(原始图像);I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title(灰度图像);I2=edge(I1,log);subplot(2,2,3);imshow(I2);title(log算子分割结果);(5)高斯拉普拉斯线特征提取算子%mar
13、r算子functionans=marr(I);ans=zeros(size(I);Isize=size(I);I=double(I);fx=0;fy=0;for i=3:Isize(1)-2 for j=3:Isize(2)-2 ans(i,j)=16*I(i,j)-2*I(i-1,j)-2*I(i+1,j)-2*I(i,j-1)-2*I(i,j+1)-I(i-1,j-1)-I(i-1,j+1)-I(i+1,j-1)-I(i+1,j+1)-I(i-2,j)-I(i+2,j)-I(i,j-2)-I(i,j+2); if ans(i,j)-120 ans(i,j)=0; else ans(i,j)
14、=255; end endendans=uint8(ans);(6)Hough直线提取算子%canny算子functionans=canny(I);gauss_I=I;Isize=size(I);ans=zeros(size(I);dir=zeros(size(I);I=double(I);gauss_I=double(gauss_I);fx=0;fy=0;for i=2:Isize(1)-1 for j=2:Isize(2)-1 fx=gauss_I(i,j)+gauss_I(i,j+1)-gauss_I(i+1,j)-gauss_I(i+1,j+1); fy=gauss_I(i,j)+ga
15、uss_I(i+1,j)-gauss_I(i,j+1)-gauss_I(i+1,j+1); ans(i,j)=sqrt(fx*fx+fy*fy); dir(i,j)=atan(fy/fx); endendfor i=2:Isize(1)-1 for j=2:Isize(2)-1 if dir(i,j)=-pi/8 & dir(i,j)pi/8 if ans(i,j)=ans(i,j-1) | ans(i,j)=pi/8 & dir(i,j)3*pi/8 if ans(i,j)=ans(i-1,j+1) | ans(i,j)=3*pi/8 | dir(i,j)-3*pi/8 if ans(i,j
16、)=ans(i-1,j) | ans(i,j)=ans(i+1,j) ans(i,j)=0; end end if dir(i,j)=3*pi/8 if ans(i,j)=ans(i-1,j-1) | ans(i,j)=ans(i+1,j+1) ans(i,j)=0; end end if ans(i,j)40 ans(i,j)=0; else ans(i,j)=255; end endendans=uint8(ans);四、 综合训练成果(1)Moravec点特征提取算子图1(2)Forstner点特征提取算子图2(3)Robert线特征提取算子图3(4)Soble线特征提取算子图4(5)P
17、rewiit线特征提取算子图5(6)拉普拉斯线特征提取算子图6(7)高斯拉普拉斯线特征提取算子图7(8)Hough直线提取算子图8五、 综合训练体会通过本次综合训练的学习,我对图像的特征提取有了深刻的理解。通过进行MATLAB 程序语句的研究发现算法的优缺点。对于不同的算子有着不同的矩阵计算模板,在进行计算时会发现因为算法的优化不同会造成遥感图像提取质量产生很大差异。我对比了网上几个论坛较好下载的MATLAB 算子代码,通过比较发现对相同的算子在进行计算时对矩阵模板计算的越准确越是会产生较好的结果。在代码编写时应注意提取线特征时确定好不同的特征线是否为同一条直线,如果不是应注意区分不同的直线。对于不同的算法之间也存在不同的优化,虽然大部分模板都会计算梯度但是在对梯度进行应用时会有很大差别,算法之间最大的差别就是卷积模板的不同。在这次综合训练之中我对MATLAB 语句的认识有了进一步的提高。指导教师意见成绩评定:指导教师签字: 年 月 日 教学单位意见负责人签字:(单位盖章)年 月 日备注注:综合训练结束时,由实习学生填写本表后,交指导教师和教学单位签署意见,最后交所在教学单位归档保管。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1