基于matlab的遥感图像处理程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于matlab的遥感图像处理程序报告
南京理工大学电光学院,无履仙人
一、程序简介
基于matlab的GUI可视化遥感图像处理程序,界面布局如下图:
菜单栏包括:文件,图像旋转,自动识别有效区域,获取有效区域,压缩,图像增强,伪彩色图像,还原重做,退出,关于等项。
主界面部分包含两个图像显示,和部分按钮及需要输入的参数。由于界面大小有限,部分功能留在菜单栏中。
二、处理步骤及部分源码
1、打开和保存文件
首先是文件菜单,包含打开和保存,打开的文件将显示在原始图像和处理图像两部分中,在处理过程中,原始图像不变,以作为和处理图像对比,保存图片只保存处理后的图片,处理前的图片不做保存。
图片打开后如图所示,
2、图像旋转
由图可见图像有部分区域无有效信息,不利于处理和获得有效信息,故应去除,首先进行旋转,便于去除无效区域。
在旋转角度编辑栏内输入要旋转的角度然后点旋转按钮,进行旋转。旋转后如图,
图像旋转源码为:
function imrotate_Callback(hObject, eventdata, handles)
h=getappdata(handles.figure_demo,'img_2');
x=get(handles.angle,'string');
an=str2num(x);
g=imrotate(h,an,'bilinear','crop');
img_2=g;
axes(handles.tag);
imshow(img_2);
setappdata(handles.figure_demo,'img_2',img_2);
3。、有效区域自动提取
现在图中有效区域基本是在一个矩形内,可以通过算法将有效区域边界的坐标求出来,单击自动识别有效区域按钮,求出后显示在图片右边的静态文本框内。如下图,
图像自动识别有效区域源码如下,
function auto_Callback(hObject, eventdata, handles)
h=getappdata(handles.figure_demo,'img_2');
[x,y]=size(h);
flag=1;
for i=1:x
for j=1:y
if h(i,j)~=0&flag==1
x1=i;
flag=0;
end
if h(i,j)~=0
x2=i;
end
end
end
for j=1:y
for i=1:x
if h(i,j)~=0&flag==0
y1=j;
flag=1;
end
if h(i,j)~=0
y2=j;
end
end
end
set(handles.x_1,'String',num2str(x1));
set(handles.x_2,'String',num2str(x2));
set(handles.y_1,'String',num2str(y1));
set(handles.y_2,'String',num2str(y2));
y0=y2-y1;
x0=x2-x1;
rect=[y1,x1,y0,x0];
setappdata(handles.figure_demo,'rect',rect);
4、获取有效区域
获得有效区域坐标后,就可以通过简单的命令获得遥感图像的有效区域了,单击菜单栏的“获取有效区域”按钮,就可获得。获得有效区域后如图,
其源码为
function imcrop_Callback(hObject, eventdata, handles)
h=getappdata(handles.figure_demo,'img_2');
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。
图像压缩源码为
function wavelet_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(handles.figure_demo,'img_2',img_2);
6、图像增强
图像压缩后,进行图像增强将大大提高处理速度和效率。在界面上设置了“直方图均值化”按钮,在“图像增强”中添加了“中值滤波”按钮,这些都是常见的图像增强算法,对于其他增强算法太多,这里不做考虑。处理后如图所示,