基于matlab的遥感图像处理程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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、图像增强

图像压缩后,进行图像增强将大大提高处理速度和效率。在界面上设置了“直方图均值化”按钮,在“图像增强”中添加了“中值滤波”按钮,这些都是常见的图像增强算法,对于其他增强算法太多,这里不做考虑。处理后如图所示,

相关文档
最新文档