高光谱图像加载
加载.os类型文件图像
# -*- coding:utf-8 -*-
# @Software: PyCharm
# @Author :hzc
# @Time :2023/5/25 9:54
from spectral import *
import matplotlib.pyplot as plt
import numpy as np
#读取文件,未加载到内存中,使用索引后再读取索引数据到内存中
data=envi.open(r"20230518123937/20230518123937.hdr",r"20230518123937/20230518123937.os")
#数据头文件
metadata=data.metadata
#可见光波段三元组
bands=[int(i) for i in metadata["default bands"]]
#将整个图片数据加载到内存中,默认使用bip格式,即R-行,C-列,B-波段
bip=data.open_memmap()
#截取部分区域,第3001行到3300行和第1列到300列的区域
bip_pixels=bip[3000:3300,0:300,:]
#保存可见光波段图片
save_rgb(r"20230518123937/20230518123937_bip.jpg",bip_pixels ,bands=bands)
# 'bsq' (B, R, C)
bsq = data.open_memmap(writable=False, interleave='bsq')
bsq_pixels=bsq[:,3000:3300,0:300]
#保存图片需要转换为RCB的格式
save_rgb(r"20230518123937/20230518123937_bsq.jpg",np.transpose(bsq_pixels,(1,2,0)) ,bands=bands)
# 'bil' (R, B, C)
bil = data.open_memmap(writable=False, interleave='bil')
bil_pixels=bil[3000:3300,:,0:300]
#保存可见光波段图片
save_rgb(r"20230518123937/20230518123937_bil.jpg",np.transpose(bil_pixels,(0,2,1)) ,bands=bands)