高光谱图像加载

该代码示例展示了如何使用Python的`spectral`库加载.os类型的高光谱图像文件,通过内存映射技术读取数据,分别以BIP(按波段、行、列顺序),BSQ(按列、行、波段顺序)和BIL(按行、波段、列顺序)三种格式处理数据,并保存可见光波段的RGB图像。
摘要由CSDN通过智能技术生成

高光谱图像加载

加载.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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值