将一个文件夹下的多张单波段图像合成为一张高光谱tiff图像
记得确保文件夹下波段图像顺序正确
files = dir('C:\Users\lianl\*.tif');%所选文件夹,找到tif图像
path=['C:\Users\lianl\',files(1).name]
tiff_stack = imread(path);
for ii = 2 : size(files, 1)
path=['C:\Users\lianl\',files(ii).name]
temp_tiff = imread(path);
tiff_stack = cat(3 , tiff_stack, temp_tiff);%堆叠tif图像的过程
end
t= Tiff('D:\data\result\pavia.tiff','w')
t.setTag('ImageLength', size(tiff_stack,1));
t.setTag('ImageWidth', size(tiff_stack,2));
t.setTag('Photometric', Tiff.Photometric.MinIsBlack); %图像数据的颜色空间
t.setTag('BitsPerSample', 16); %数据位数
t.setTag('SamplesPerPixel', 103); %pavia center是101波段
t.setTag('PlanarConfiguration', Tiff.PlanarConfiguration.Chunky);
t.setTag('Compression',Tiff.Compression.None); %无压缩
t.setTag('SampleFormat',1); %像素样本格式
t.write(tiff_stack)
t.close;
python将tiff高光谱图转为mat格式
import scipy.io as sio
import skimage.io
# tif图
imgpath = r'D:\data\result\pavia.tiff'
imggt = skimage.io.imread(imgpath)
# 转为mat
sio.savemat(r"D:\data\pavia_DASR_result.mat", {'SR': imggt})