资源描述:
《基于matlab的遥感图像处理程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于matlab的遥感图像处理程序报告南京理工大学电光学院,无履仙人一、程序简介基于matlab的GUI可视化遥感图像处理程序,界面布局如下图:菜单栏包括:文件,图像旋转,自动识别有效区域,获取有效区域,压缩,图像增强,伪彩色图像,还原重做,退出,关于等项。主界面部分包含两个图像显示,和部分按钮及需要输入的参数。由于界面大小有限,部分功能留在菜单栏中。二、处理步骤及部分源码1、打开和保存文件首先是文件菜单,包含打开和保存,打开的文件将显示在原始图像和处理图像两部分中,在处理过程中,原始图像不变,以作为和处理图像对比,保存图片只保存处理后的图片,处理前的图片不做
2、保存。图片打开后如图所示,2、图像旋转由图可见图像有部分区域无有效信息,不利于处理和获得有效信息,故应去除,首先进行旋转,便于去除无效区域。在旋转角度编辑栏内输入要旋转的角度然后点旋转按钮,进行旋转。旋转后如图,图像旋转源码为:functionimrotate_Callback(hObject,eventdata,handles)h=getappdata(handles.figure_demo,'img_2');x=get(handles.angle,'string');an=str2num(x);g=imrotate(h,an,'bilinear','cro
3、p');img_2=g;axes(handles.tag);imshow(img_2);setappdata(handles.figure_demo,'img_2',img_2);3。、有效区域自动提取现在图中有效区域基本是在一个矩形内,可以通过算法将有效区域边界的坐标求出来,单击自动识别有效区域按钮,求出后显示在图片右边的静态文本框内。如下图,图像自动识别有效区域源码如下,functionauto_Callback(hObject,eventdata,handles)h=getappdata(handles.figure_demo,'img_2');[x,y
4、]=size(h);flag=1;fori=1:xforj=1:yifh(i,j)~=0&flag==1x1=i;flag=0;endifh(i,j)~=0x2=i;endendendforj=1:yfori=1:xifh(i,j)~=0&flag==0y1=j;flag=1;endifh(i,j)~=0y2=j;endendendset(handles.x_1,'String',num2str(x1));set(handles.x_2,'String',num2str(x2));set(handles.y_1,'String',num2str(y1));se
5、t(handles.y_2,'String',num2str(y2));y0=y2-y1;x0=x2-x1;rect=[y1,x1,y0,x0];setappdata(handles.figure_demo,'rect',rect);4、获取有效区域获得有效区域坐标后,就可以通过简单的命令获得遥感图像的有效区域了,单击菜单栏的“获取有效区域”按钮,就可获得。获得有效区域后如图,其源码为functionimcrop_Callback(hObject,eventdata,handles)h=getappdata(handles.figure_demo,'img_2
6、');rect1=getappdata(handles.figure_demo,'rect');img_2=imcrop(h,rect1);axes(handles.tag);imshow(img_2);setappdata(handles.figure_demo,'img_2',img_2);5、小波压缩为了便于后续的处理和观察,进行小波变换压缩图像,在程序中设置了下拉菜单,用户可选择压缩级次,分别为1、2、3级,默认为1级,选择好后单击“小波变换压缩按钮”,对图像进行压缩,压缩后如下图,此时图像变为原来图像大小的1/4。图像压缩源码为functionwav
7、elet_Callback(hObject,eventdata,handles)h=getappdata(handles.figure_demo,'img_2');x=getappdata(handles.figure_demo,'x');h=double(h);[c,s]=wavedec2(h,2,'bior3.7');ca1=appcoef2(c,s,'bior3.7',x);%低频x为压缩级次ca1=wcodemat(ca1,255,'mat',0);%编码img_2=mat2gray(ca1);imshow(img_2);setappdata(hand
8、les.figure_demo,'im