基于matlab的遥感图像处理程序
- 格式:doc
- 大小:1.16 MB
- 文档页数:6
Brovey变换融合算法MATLAB实现一、引言Brovey变换是一种常用于遥感图像融合的方法,它能够有效地融合多光谱和全色图像,生成既有全色图像的空间细节,又保留多光谱图像的光谱信息的融合图像。
以下是在MATLAB中实现Brovey变换融合算法的步骤。
二、算法原理Brovey变换的基本思想是对每一个像素进行归一化处理,然后再将归一化后的图像进行乘法运算。
这样可以增强图像的对比度,提高图像的空间分辨率,同时保持原有的光谱特性。
具体算法步骤如下:1. 对多光谱图像(MSI)和全色图像(PAN)进行归一化处理。
2. 对归一化后的MSI和PAN进行乘法运算。
3. 对得到的乘积图像进行反归一化处理,得到最终的融合图像。
三、MATLAB实现以下是基于上述算法原理的MATLAB实现代码:```Matlabfunction fused_img = Brovey_Transform(MSI, PAN)% 输入:MSI - 多光谱图像,PAN - 全色图像% 输出:fused_img - 融合后的图像% 将MSI和PAN转换为double类型,方便后续计算MSI = double(MSI);PAN = double(PAN);% 获取MSI和PAN的大小[M, N, ~] = size(MSI);[P, Q] = size(PAN);% 确保MSI和PAN大小一致,如果不一致,则需要进行重采样或其他处理if M ~= P || N ~= Qerror('MSI和PAN的大小不一致,无法进行Brovey变换');end% 对MSI和PAN进行归一化处理MSI_norm = MSI ./ repmat(sum(MSI, 3), [1, 1, size(MSI, 3)]);PAN_norm = PAN ./ sum(PAN(:));% 对归一化后的MSI和PAN进行乘法运算fused_img = zeros(size(MSI));for i = 1:size(MSI, 3)fused_img(:, :, i) = MSI_norm(:, :, i) .* PAN_norm;end% 对得到的乘积图像进行反归一化处理,得到最终的融合图像min_val = min(min(min(fused_img)));max_val = max(max(max(fused_img)));fused_img = (fused_img - min_val) / (max_val - min_val); % 归一化到[0,1]区间fused_img = uint8(fused_img * 255); % 转换为uint8类型,方便显示和存储end```请注意,这只是一个基础的Brovey变换实现,实际应用中可能需要进行一些优化和调整,例如对输入图像进行预处理(如去噪、增强等),对输出图像进行后处理(如颜色校正、对比度拉伸等)。
Matlab中的遥感图像处理与分析方法遥感图像处理与分析是遥感技术的重要组成部分,它包括对获取的遥感图像进行预处理、增强、分类、信息提取等一系列操作。
Matlab作为一种强大的科学计算软件,提供了丰富的工具箱和函数,广泛应用于遥感图像处理与分析领域。
本文将介绍Matlab中一些常用的遥感图像处理与分析方法,并探讨其在实际应用中的价值。
一、遥感图像的读取与显示在进行遥感图像处理与分析之前,首先需要将遥感图像读取到Matlab中。
Matlab提供了多种读取图像的函数,如imread、multibandread等。
通过这些函数,可以将遥感图像以矩阵的形式存储在Matlab的变量中,方便后续的处理。
读取遥感图像后,我们可以使用imshow函数在Matlab中显示图像。
通过调整imshow函数的参数,可以实现对图像的缩放、亮度、对比度等的调整。
此外,Matlab还提供了imtool函数,可以在一个窗口中同时显示多幅图像,方便进行比较和分析。
二、遥感图像的预处理遥感图像的预处理是遥感图像处理与分析的重要步骤之一。
预处理的目的是消除图像中的噪声、增强图像的对比度、调整图像的亮度等,为后续的处理提供更好的数据基础。
在Matlab中,可以使用多种函数实现遥感图像的预处理。
例如,imadjust函数可以调整图像的亮度和对比度,imnoise函数可以在图像中添加噪声,medfilt2函数可以进行中值滤波,去除图像中的椒盐噪声等。
此外,Matlab还提供了一些专门用于遥感图像处理的工具箱,如Image Processing Toolbox、Computer Vision Toolbox等,这些工具箱提供了丰富的函数和工具,便于进行图像的预处理操作。
三、遥感图像的增强与融合遥感图像的增强与融合是遥感图像处理与分析的重要任务之一。
增强可以使图像中的细节更加清晰,对于提取图像中的信息非常有帮助。
融合可以将来自不同传感器或不同时刻的遥感图像融合在一起,得到更全面的信息。
基于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:xfor j=1:yif h(i,j)~=0&flag==1x1=i;flag=0;endif h(i,j)~=0x2=i;endendendfor j=1:yfor i=1:xif h(i,j)~=0&flag==0y1=j;flag=1;endif h(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));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、获取有效区域获得有效区域坐标后,就可以通过简单的命令获得遥感图像的有效区域了,单击菜单栏的“获取有效区域”按钮,就可获得。
MATLAB中的遥感图像处理方法解析遥感图像处理是一项重要的技术,广泛应用于农业、环境保护、城市规划等领域。
MATLAB作为一种强大的科学计算软件,提供了许多有效的图像处理工具和算法,使得遥感图像的处理更加简便高效。
本文将通过几个实例,介绍MATLAB 中常用的遥感图像处理方法。
一、图像预处理遥感图像通常存在一些噪声和失真。
为了提高图像质量和后续分析的精确性,需要对图像进行预处理。
MATLAB提供了各种滤波器和降噪算法,如中值滤波、高斯滤波和小波变换。
这些方法可以降低图像中的噪声,并使细节更加清晰。
二、图像增强图像增强是提升图像视觉效果的重要方法。
在遥感图像处理中,一般采用直方图均衡化和对比度拉伸等方法。
直方图均衡化可以使图像的亮度分布更均匀,增强图像的视觉效果。
对比度拉伸则通过扩展图像的动态范围,使得图像中的细节更加丰富。
三、影像分割影像分割是将图像分割成不同的区域或目标的过程。
MATLAB提供了多种分割算法,如基于阈值的分割、基于区域的分割和基于边缘的分割。
这些方法可以帮助我们从遥感图像中提取出感兴趣的目标,为后续的分析提供有效的数据。
四、特征提取特征提取是从遥感图像中提取出有意义的特征信息的过程。
常用的特征包括纹理特征、形状特征和光谱特征等。
MATLAB提供了一系列用于特征提取的函数和工具箱,如灰度共生矩阵、哈尔小波变换和主成分分析等。
这些方法可以帮助我们从遥感图像中提取出有价值的特征,用于后续的分类和识别任务。
五、图像分类图像分类是将图像分成不同的类别或类别的过程。
在遥感图像处理中,一般采用监督学习和无监督学习的方法。
监督学习需要样本标注数据,可以通过支持向量机和随机森林等算法进行分类。
无监督学习则不需要标注数据,常用的方法有k均值聚类和自组织映射网络等。
MATLAB提供了这些算法的实现和函数,方便我们进行遥感图像的分类和识别。
六、图像融合图像融合是将多个传感器或多个波段的图像进行融合,得到更全面、更丰富的信息的过程。
如何在Matlab中进行遥感数据处理遥感数据处理在当今科研和应用领域中扮演着重要的角色。
Matlab作为一种强大的数学计算软件,提供了丰富的工具和函数,使得遥感数据处理变得更加高效和便捷。
本文将探讨如何在Matlab中进行遥感数据处理。
一、引言遥感数据处理是从卫星、飞机等远距离获取的影像数据中提取地物信息的过程。
处理遥感数据的目标通常包括图像分类、特征提取、变化检测等。
Matlab作为一种强大的数学计算软件,提供了丰富的工具和函数,可以帮助我们在处理遥感数据时更加高效和灵活。
二、读取和显示遥感数据在Matlab中读取和显示遥感数据是遥感数据处理的第一步。
Matlab提供了多种方式读取不同格式的遥感数据,如ENVI格式、GeoTIFF格式等。
可以使用imread函数读取图像数据并使用imshow函数显示图像,也可以使用geotiffread函数读取GeoTIFF格式的遥感数据并使用mapshow函数显示。
三、遥感数据预处理遥感数据预处理是在进行后续分析前对图像进行的一系列操作,如去噪、辐射校正、几何校正、影像融合等。
Matlab提供了丰富的函数和工具箱来完成这些操作。
可以使用medfilt2函数进行图像的中值滤波去噪,使用imadjust函数进行图像的亮度和对比度调整。
对于辐射校正和几何校正,可以利用遥感数据处理工具箱中的radiometricCorrection和geometricCorrection函数。
四、遥感影像分类遥感影像分类是将遥感影像中的像素分为不同的类别,常用于土地利用、植被覆盖等应用。
在Matlab中,可以使用机器学习算法和图像处理技术进行遥感影像分类。
其中,常用的机器学习算法包括支持向量机(SVM)、随机森林(Random Forest)等。
Matlab提供了相应的函数和工具箱来实现这些算法,如fitcsvm函数和TreeBagger函数等。
五、遥感数据特征提取遥感数据特征提取是从遥感影像中提取具有代表性的特征,用于进一步分析和应用。
基于MATLAB GUI图像处理系统的设计与实现摘要:本文主要介绍了基于MATLAB GUI的图像处理系统的设计与实现过程。
文章介绍了图像处理的基本概念和相关技术,然后详细阐述了MATLAB GUI的设计原理和实现方法。
接着,本文对图像处理系统的功能模块进行了详细的设计与实现,包括图像的读取、显示、处理和保存等功能。
文章对系统进行了实验测试,并对系统的性能和稳定性进行了评估。
通过本文的研究和实践,可为MATLAB GUI图像处理系统的设计与实现提供一定的参考和指导。
一、引言二、图像处理的基本概念和相关技术图像处理是对图像进行获取、处理、分析和识别等一系列操作的过程。
在图像处理中,常用的技术包括图像采集与存储、图像增强、图像复原、图像压缩、图像分割、图像识别等。
这些技术在医学影像、遥感图像、安防监控等领域有着广泛的应用。
三、MATLAB GUI的设计原理和实现方法MATLAB GUI是一种基于MATLAB的图形用户界面设计工具,可以方便地实现交互式的图形界面。
MATLAB提供了丰富的GUI设计函数和工具,包括控件的设计与布局、事件处理、界面调整等功能。
通过这些工具,可以方便地设计和实现各种类型的图像处理系统。
在设计MATLAB GUI时,主要包括以下几个步骤:1. 设计GUI界面:包括控件的选择和布局、界面的美化和调整等操作。
2. 编写回调函数:对于每个控件的事件,需要编写相应的回调函数,定义其处理逻辑和功能。
3. 运行GUI程序:将设计好的GUI程序运行在MATLAB平台上,测试其性能和稳定性。
通过以上步骤,可以方便地设计和实现一个交互式的图像处理系统。
四、图像处理系统的设计与实现基于MATLAB GUI,设计并实现了一个简单的图像处理系统,主要包括图像的读取、显示、处理和保存等功能。
具体的设计过程如下:2. 编写回调函数:对于每个控件的事件,需要编写相应的回调函数,定义其处理逻辑和功能。
对于文件读取按钮,编写了一个回调函数来实现图像的读取和显示功能;对于图像处理功能按钮,编写了不同的回调函数来实现图像的处理和保存功能。
ENVI提取遥感影像灰度值
这个操作需要借助envi和matlab共同完成
一、Envi操作
1、打开遥感影像
File—open image file—选择影像打开
2、用envi将遥感影像的6个波段分别存储为灰度图像1)打开一个波段的灰度图
2)在resize窗口file—save image file---image file,
3)点击memory---点击ok
4)6个波段分别存储为灰度图像(如图所示)
3、将6个波段的灰度图像存储为一个envi标准图像,1)basic tools---layer stacking
2)import file---将6个波段按照先后顺序加入,并设置文件存储的地方和文件名,点击ok 在存储命名时,要选择envi标准格式,即没有任何后缀的文件格式。
二、matlab操作
1、打开matlab,运用enviread进行运算,输入函数名,将varargin改为遥感图像的名字(实验所用为p126HDT),然后运行
2、运行的结构为结构体数组I。
它包括了四组数据,其中z为我们所用到的灰度值
3、将z数据单独存储出来—详见enviread_opeartion.m脚本文件
4、最后将z存储为mat文件
1)将函数得到的结果I删除
2)点击workspace下的按钮,将其存为mat文件。
MatIab技术遥感图像处理实例分析遥感图像处理是一项涵盖多个领域的复杂任务,它在环境保护、农业、城市规划等众多领域中都有着重要的应用。
MatIab作为一种广泛应用于科学计算与数据可视化的编程语言,提供了丰富的工具箱和函数,用于处理和分析遥感图像数据。
本文将通过实例来探讨MatIab在遥感图像处理中的应用,重点分析图像预处理、特征提取以及分类与监督分析等方面的技术。
一、图像预处理在遥感图像处理中,预处理是一个必不可少的步骤。
图像预处理的目标是去除图像中的噪声、改善图像质量,并增强图像特征。
MaUab提供了多种图像滤波和增强的函数,可以有效地进行图像预处理。
例如,在进行图像去噪时,可以使用Mauab中的中值滤波函数。
中值滤波是一种非常适用于去除椒盐噪声的滤波方法。
首先,加载遥感图像数据,并通过MatIab的傅里叶变换函数将图像转换为频域数据。
然后,使用中值滤波函数对频域数据进行处理,最后再通过傅里叶逆变换将图像转换回空域数据。
通过这个简单的步骤,我们可以去除图像中的噪声,提高图像的清晰度和质量。
除了去噪外,图像增强也是图像预处理的重要任务。
Mat1ab提供了多种图像增强算法,如直方图均衡化和小波变换。
直方图均衡化是一种通过改变图像的灰度级分布来提高图像对比度的方法。
可以通过Mat1ab的直方图均衡化函数来实现,只需要将输入图像作为参数传递给函数即可。
小波变换是一种时频分析方法,可以同时提供图像的时域和频域信息。
在图像增强中,可以使用小波变换来处理图像的高频部分,从而增强图像的边缘和细节。
二、特征提取在遥感图像处理中,特征提取是一项关键任务。
特征提取是指从图像中提取出最具代表性的信息,以便进行分类和分析。
Mat1ab提供了多种特征提取算法,如纹理特征和形状特征。
纹理特征是用于描述图像不同区域纹理特点的特征。
MatIab提供了多种计算纹理特征的函数,如灰度共生矩阵、GabOr滤波器等。
例如,可以使用Mat1ab的灰度共生矩阵函数来计算图像的纹理特征。
Matlab中的遥感图像处理技巧引言:遥感图像处理是一门涵盖多学科知识的技术,通过获取、处理和解释遥感图像数据,可以帮助我们更好地了解地球表面的特征和变化。
Matlab作为一种功能强大的编程语言和图像处理工具,为遥感图像处理提供了丰富的功能和工具。
本文将介绍一些Matlab中常用的遥感图像处理技巧,并探讨它们的应用。
一、图像读取和显示在进行遥感图像处理前,首先需要将图像读取到Matlab环境中,并进行显示。
Matlab提供了image、imshow等函数用于读取和显示图像。
在读取图像时,我们可以使用imread函数,并指定图像的路径和文件名。
通过imshow函数,我们可以快速地将图像显示在Matlab的图像窗口中。
此外,还可以使用colormap函数来调整图像的颜色映射以获得更好的显示效果。
二、图像增强与滤波在遥感图像处理中,为了提高图像的质量和可见度,我们常常需要对图像进行增强和滤波。
Matlab提供了众多的图像增强和滤波函数,如imadjust、histeq、medfilt2等。
imadjust函数可用于对图像的对比度进行调整,histeq函数可用于对图像进行直方图均衡化,medfilt2函数可用于对图像进行中值滤波。
这些函数可以帮助我们快速地实现不同的图像增强和滤波效果。
三、图像分割与分类图像分割和分类是遥感图像处理中的重要任务之一,它可以将图像中的不同区域进行划分和分类,以便更好地进行后续分析。
Matlab提供了多种图像分割和分类的函数和工具箱,如imsegkmeans、watershed、neural network toolbox等。
imsegkmeans函数可用于基于k-means算法对图像进行分割,watershed函数可用于通过分水岭算法将图像分割为不同的区域,neural network toolbox可用于进行基于神经网络的图像分类。
四、特征提取与分析遥感图像中蕴含着丰富的地理和环境信息,通过提取和分析这些特征,我们可以获得更深入的了解和洞察。
ENVI提取遥感影像灰度值
这个操作需要借助envi和matlab共同完成
一、Envi操作
1、打开遥感影像
image file—选择影像打开
2、用envi将遥感影像的6个波段分别存储为灰度图像1)打开一个波段的灰度图
2)在resize窗口image file,
3)点击memory---点击ok
4)6个波段分别存储为灰度图像(如图所示)
3、将6个波段的灰度图像存储为一个envi标准图像,
1)basic tools---layer stacking
2)import 将6个波段按照先后顺序加入,并设置文件存储的地方和文件名,点击ok
在存储命名时,要选择envi标准格式,即没有任何后缀的文件格式。
二、matlab操作
1、打开matlab,运用enviread进行运算,输入函数名,将varargin改为遥感图像的名字(实验所用为p126HDT),然后运行
2、运行的结构为结构体数组I。
它包括了四组数据,其中z为我们所用到的灰度值
3、将z数据单独存储出来—详见enviread_opeartion.m脚本文件
4、最后将z存储为mat文件
1)将函数得到的结果I删除
2)点击workspace下的按钮,将其存为mat文件。
利用Matlab进行遥感图像处理与遥感数据分析引言:遥感技术是获取地球表面信息的有效手段之一,广泛应用于农业、环境、地质、气象等领域。
遥感图像处理和遥感数据分析是遥感技术的重要组成部分,能够帮助我们更好地理解和研究地球表面的各种现象和特征。
本文将介绍如何利用Matlab进行遥感图像处理和遥感数据分析。
一、Matlab在遥感图像处理中的应用1. 图像预处理遥感图像通常存在噪声、亮度不均匀、边缘模糊等问题,影响了后续的图像分析和信息提取。
利用Matlab可以对遥感图像进行预处理,包括噪声去除、直方图均衡化、边缘增强等。
其中,噪声去除可以使用中值滤波、均值滤波等方法,直方图均衡化可以提高图像的对比度,边缘增强可以利用拉普拉斯算子或索贝尔算子等进行边缘检测和增强。
2. 图像分类与分割遥感图像分类是分析遥感图像中不同地物类型的过程。
利用Matlab,可以使用传统的像元级分类方法,如最小距离分类法、最大似然分类法等。
此外,还可以使用机器学习算法,如支持向量机分类器、随机森林分类器等,提高分类的准确性和效果。
图像分割是将图像划分为不同的区域或对象的过程,常用的方法包括区域生长、分水岭算法等。
3. 特征提取与目标检测图像特征提取是从图像中提取具有代表性的特征,即反映某一特定属性的图像信息。
利用Matlab,可以提取纹理特征、频谱特征、形状特征等。
目标检测是在遥感图像中检测和定位感兴趣的目标,如建筑物、道路等。
常用的目标检测方法包括基于特征的方法、基于模型的方法等。
二、Matlab在遥感数据分析中的应用1. 遥感数据读取与处理遥感数据通常以多光谱数据或高光谱数据的形式存在,其中包含了地表覆盖类型、植被指数、水中深度等信息。
利用Matlab,可以读取遥感数据,并进行数据处理,如去除无效数据、填补缺失值等。
此外,还可以进行数据融合,将多个遥感数据集合并成一个。
2. 遥感数据可视化利用Matlab,可以对遥感数据进行可视化,以直观地观察地表特征。
遥感大气校正matlab
遥感大气校正(Atmospheric Correction)是一种去除大气干扰
的技术,可以提高遥感影像的质量和可用性。
Matlab是一种
常用的处理遥感数据的工具,下面是使用Matlab进行遥感大
气校正的一般步骤:
1. 读取遥感影像数据:使用Matlab的相关函数读取遥感影像
数据,可以是多光谱影像或高光谱影像。
2. 获取影像中的大气信息:通过某种方法,如相对辐射传输模型或大气模型,获取影像中各像元的大气信息,如大气透过率等。
3. 计算大气校正参数:根据获取到的大气信息,使用特定的算法计算大气校正系数,如大气透射率、大气散射校正参数等。
4. 针对每个波段进行大气校正:根据计算得到的大气校正参数,对每个波段的像素值进行校正,得到校正后的遥感影像。
5. 可选的后处理步骤:根据实际需求,可以进行一些额外的后处理,如波段合成、镶嵌校正等。
以上仅为一般步骤,具体的实施方法和算法可以根据实际需求和数据特点进行调整。
需要注意的是,遥感大气校正是一个复杂的过程,需要一定的遥感和图像处理专业知识。
在实际应用中,可以采用已有的开
源工具包,如Envi、ArcGIS等,或者利用Matlab中的图像处理工具箱和光谱分析工具箱进行开发和实现。
辽宁工程技术大学《数字图像处理》上机实习报告教学单位辽宁工程技术大学专业摄影测量与遥感实习名称遥感数字图像处理班级测绘研11-3班学生姓名路聚峰学号*********指导教师孙华生实习1 读取BIP 、BIL、BSQ文件一、实验目的用Matlab读取BIP 、BIL、BSQ文件,并将结果显示出来。
遥感图像包括多个波段,有多种存储格式,但基本的通用格式有3种,即BSQ、BIL和BIP格式。
通过这三种格式,遥感图像处理系统可以对不同传感器获取的图像数据进行转换。
BSQ是像素按波段顺序依次排列的数据格式。
BIL 格式中,像素先以行为单位块,在每个块内,按照波段顺序排列像素。
BIP格式中,以像素为核心,像素的各个波段数据保存在一起,打破了像素空间位置的连续性。
用Matlab读取各个格式的遥感数据,是图像处理的前提条件,只有将图像读入Matlab工作空间,才能进行后续的图像处理工作。
二、算法描述1.调用fopen函数用指定的方式打开文件。
2.在for循环中调用fread函数,用指定的格式读取各个像素。
3.用reshape函数,重置图像的行数列数。
4.用imadjust函数调整像素的范围,使其有一定对比度。
5.用imshow显示读取的图像。
三、Matlab源代码1.读取BSQ的源代码:clear allclclines=400;samples=640;N=6;img=fopen('D:\sample_BSQ','rb');for i=1:Nbi=fread(img,lines*samples,'uint8');band_cov=reshape(bi,samples,lines);band_cov2=band_cov'; band_uint8=uint8(band_cov2);tif=imadjust(band_uint8);mkdir('D:\MATLAB','tifbands1')name=['D:\MATLAB\tifbands1\tif',int2str(i),'.tif'];imwrite(tif,name,'tif');tilt=['波段',int2str(i)];subplot(3,2,i),imshow(tif);title(tilt);endfclose(img);2.读取BIP源代码clear allclclines=400;samples=640;N=6;for i=1:Nimg=fopen('D:\MATLAB\sample_BIP','rb');b0=fread(img,i-1,'uint8');b=fread(img,lines*samples,'uint8',(N-1));band_cov=reshape(b,samples,lines);band_cov2=band_cov';%תÖÃband_uint8=uint8(band_cov2);tif=imadjust(band_uint8);mkdir('E:\MATLAB','tifbands')name=['E:\MATLAB\tifbands\tif',int2str(i),'.tif'];imwrite(tif,name,'tif'); %imwrite(A,filename,fmt)tilt=['波段',int2str(i)];subplot(3,2,i),imshow(tif);title(tilt);fclose(img);end3.读取BIL的源代码clear allclclines=400;samples=640;N=6;for i=1:Nbi=zeros(lines,samples);for j=1:samplesimg=fopen('D:\MATLAB\sample_BIL','rb');bb=fread(img,(i-1)*640,'uint8');b0=fread(img,1*(j-1),'uint8');bandi_linej=fread(img,lines,'uint8',1*(N*samples-1));fclose(img);bi(:,j)=bandi_linej;endband_uint8=uint8(bi);tif=imadjust(band_uint8);mkdir('D:\MATLAB','tifbands')name=['D:\MATLAB\tifbands\tif',int2str(i),'.tif'];imwrite(tif,name,'tif');tilt=['²¨¶Î',int2str(i)];subplot(3,2,i),imshow(tif);title(tilt);end四、运行结果图1:读取文件的六个波段图实习2 均值/中值滤波、边缘信息提取一、实验目的与原理各种图像滤波算子可以实现图像的增强,去噪,边缘提取等。
利用Matlab进行遥感图像处理和地理信息系统分析遥感图像处理和地理信息系统(GIS)已经成为现代地球科学和环境研究中不可或缺的工具。
对于研究者和科学家来说,能够利用Matlab这样强大的软件进行遥感图像处理和GIS分析是一种巨大的优势。
本文将介绍如何利用Matlab进行遥感图像处理和GIS分析,并展示一些实际案例。
首先,让我们来了解一下遥感图像处理和GIS分析的基本概念。
遥感图像是通过遥感技术获取的地球表面的图像,它可以提供关于地表物体和现象的大量信息。
遥感图像处理是对这些图像进行处理和分析,以提取有用的信息。
GIS是一种以地理空间数据为基础的信息系统,它可以用来管理、处理和分析地理空间数据。
在利用Matlab进行遥感图像处理方面,首先要了解如何读取和显示遥感图像。
Matlab提供了一系列的函数和工具箱,可以读取各种格式的遥感图像,并对其进行处理和分析。
通过使用这些函数,可以轻松地读取和显示遥感图像,以便进一步处理和分析。
接下来是遥感图像处理的一些常见任务,如图像增强、分类和变换。
图像增强是提高图像质量和细节的过程,可以通过调整对比度、亮度和色彩来实现。
分类是将图像中的像素划分为不同的类别,例如土地类型、植被覆盖等。
常用的分类方法包括监督分类和无监督分类。
变换是将图像从一个域转换到另一个域,例如从时域到频域或从空间域到频域。
这些任务都可以通过Matlab提供的函数和工具箱来实现。
除了遥感图像处理,Matlab还提供了丰富的功能和工具箱,用于GIS分析。
这包括地图数据的读取和显示、空间分析和地理编码等。
地图数据可以是矢量数据或栅格数据,可以通过使用Matlab的地图数据处理函数来读取和显示。
空间分析是对地理空间数据进行统计和分析的过程,可以用来研究地理现象的分布和关联。
地理编码是将地理空间数据与行政区划或其他地理实体进行对应的过程,例如将地址转换为经纬度。
接下来,让我们看一些实际的案例,以展示Matlab在遥感图像处理和GIS分析方面的应用。
基于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、图像增强
图像压缩后,进行图像增强将大大提高处理速度和效率。
在界面上设置了“直方图均值化”按钮,在“图像增强”中添加了“中值滤波”按钮,这些都是常见的图像增强算法,对于其他增强算法太多,这里不做考虑。
处理后如图所示,
中值滤波及直方图均值化源码如下
function medfilt_Callback(hObject, eventdata, handles)
h=getappdata(handles.figure_demo,'img_2');
g=medfilt2(h);%中值滤波
img_2=g;
%%%%%%%%%%%%%%%%%%%%%%%%%
function histeq_Callback(hObject, eventdata, handles)
h=getappdata(handles.figure_demo,'img_2');
g=histeq(h);%直方图均值化
img_2=g;
7、伪彩色图像
由于图像是灰度图,观察中可能带来不直观,可以选择适当的伪彩色进行渲染图片,单击“伪彩色”按钮,获得图像如图。
源码略。
8、其他功能及说明。
菜单栏中另外提供了,“还原重做”菜单,“退出”菜单,及“关于”菜单。
还原重做提供了将处理后图片还原为处理前图像功能,当操作失误或不当时可选择此菜单重新处理,退出按钮提供退出功能并释放程序所占的内存空间。
关于菜单提供关于和帮助功能,关于提供作者信息。
另外值得说明的是,程序在任何时候都可以保存处理后的图像,建议每处理一步保存一次图像,以防处理过程失误,造成不必要的时间浪费,当出错时直接提取保存的图像,就可以继续处理!
三、处理前后图像对比。
图片来源:美国Landsat卫星官方http://35.8.163.34/?version=Website。
处理图片文件名:p081r010_7k20020718_z04_nn61.tif
2010-07-05。