MATLAB遥感影像处理及分析

%% 子图1,读取影像,tif影像为哨兵四波段影像,
subplot(2,2,1);
data1=imread('20210409.tif');
data2=imread('20210529.tif');
red1=data1(:,:,3);% 分别为蓝、绿、红、近红波段
nir1=data1(:,:,4);
red2=data2(:,:,3);
nir2=data2(:,:,4);
image(0,0,nir1,'CDataMapping','scaled');% image显示近红外波段图像(选择其中一期显示即可)
colorbar('vert');% 加入垂直方向颜色条(colorbar)
colormap(jet);% colormap配色‘jet’
title('(a) 20210409近红波段影像');% 标题命名(举例):'(a) 20210409近红波段影像

%% 子图2,计算植被指数NDVI,
subplot(2,2,2);
NDVI1 = double(nir1-red1) ./ double(nir1+red1); % 元素级除法计算
imshow(NDVI1,[min(NDVI1(:)),max(NDVI1(:))]);% imshow显示NDVI图
title('(b) 20210409NDVI影像');% 命名'(b) 20210409_NDVI影像'
%print G:\Software\MATLAB\Matlab2018a\result\20210409_NDVI -djpeg -r600% 保存图像,命名为20210409_NDVI.jpg

%% 子图3,计算两幅影像的NDVI差值
subplot(2,2,3);
NDVI2 = double(nir2-red2) ./ double(nir2+red2); % 元素级除法计算
DNDVI=NDVI2-NDVI1;
image(DNDVI,'CDataMapping','scaled');% image显示NDVI差值结果
colorbar('vert')% 加入垂直方向颜色条(colorbar)
%colormap(jet);% colormap配色‘jet’这个地方如果加上不知道为什么会改变前面子图的配色,可能和colormap适用于全局有关?我直接注释掉了这句代码
title('(c) dNDVI');% 标题命名:'(c) dNDVI'
% 保存图片信息

%% 子图4,图像分割
subplot(2,2,4);
I=im2double(nir1);%把数值矩阵化为double类型
[result,thresh]=edge(I,'canny');%Canny图像分割
imshow(result);
title('(d) 基于canny算法的影像分割');% 标题命名举例:(d) 基于canny算法的影像分割'
print G:\Software\MATLAB\Matlab2018a\result\result -djpeg -r900% 保存图片信息,格式jpg,分辨率900dpi

所需数据可以去我的资源免费下载https://download.csdn.net/download/m0_59534535/87709020

把影像数据直接放到MATLAB安装路径的bin路径下那么代码就可以直接用了,如果你把图片存到其他地方了就需要为数据提供完整的路径。

老规矩,这只是最初级的形态代码,可以根据自己的ability继续完善......

MATLAB遥感影像处理及分析_第1张图片

 

你可能感兴趣的:(matlab,图像处理,计算机视觉)