珠海一号数据在Matlab中用multibandread打开并显示,举例并附视频。处理后的影像导出在envi中打开
时间: 2024-01-24 15:19:21 浏览: 101
珠海一号数据是一种遥感卫星数据,其数据格式为TIF格式。在Matlab中,可以使用multibandread函数读取TIF格式的多波段图像数据。以下是一个简单的示例代码:
```matlab
filename = 'ZH1_4_20180501.tif'; % 文件名
info = imfinfo(filename); % 获取图像信息
width = info.Width; % 获取图像宽度
height = info.Height; % 获取图像高度
num_bands = numel(info.BandOffsets); % 获取通道数
data = multibandread(filename, [height, width, num_bands],...
'PixelRegion', {[1 1 height], [1 1 width]}, 'Precision', 'single', 'Endian', 'l');
imshow(data(:,:,1:3)); % 显示前三个通道
```
在以上代码中,我们首先使用imfinfo函数获取图像信息,包括图像宽度、高度和通道数等信息。然后使用multibandread函数读取图像数据,并将其显示出来。
下面是一个示例视频:
https://www.bilibili.com/video/BV1Mz4y1x7Jo
在Matlab中处理完影像后,可以将其导出到ENVI格式,方便在ENVI软件中进行进一步处理和分析。以下是一个简单的示例代码:
```matlab
filename = 'ZH1_4_20180501.tif'; % 文件名
info = imfinfo(filename); % 获取图像信息
width = info.Width; % 获取图像宽度
height = info.Height; % 获取图像高度
num_bands = numel(info.BandOffsets); % 获取通道数
data = multibandread(filename, [height, width, num_bands],...
'PixelRegion', {[1 1 height], [1 1 width]}, 'Precision', 'single', 'Endian', 'l');
enviwrite(data, 'ZH1_4_20180501', 'bil', info(1).SpatialRef); % 导出到ENVI格式
```
在以上代码中,我们使用enviwrite函数将数据导出到ENVI格式,其中'ZH1_4_20180501'是导出文件的文件名,'bil'表示使用BIL格式保存数据,info(1).SpatialRef表示使用与原始数据相同的空间参考系统。
阅读全文