高光谱图像加载、归一化和增强(jupyter book)

1.获取高光谱图像:我用的是indian_pines的数据集,感兴趣的兄弟可以自行去官方网下载,gt的那个是它的标签哦,别搞错了。

2.图像加载:

(1)从本地路径加载

python 复制代码
import scipy.io as sio

# 文件路径
file_path = '你的本地路径'

# 使用scipy加载.mat文件
data = sio.loadmat(file_path)

# 提取高光谱图像数据
spectral_image = data['indian_pines']

(2)记得查看打印下你的数据集维度,print("数据集维度:", spectral_image.shape),后面有用到。

3.归一化处理:

归一化处理:将数据集的值缩放到一个特定的范围内的过程。在显示图像时,归一化处理可以使得图像的亮度和对比度更加均衡,以便更好地观察图像中的细节。

python 复制代码
#数据集归一化处理
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('TkAgg')#将 Matplotlib 的后端设置为一个支持图像显示的后端
%matplotlib inline#将图像嵌入jupyter book中


# 对每个通道进行归一化
normalized_image = spectral_image / np.max(spectral_image)

# 将每个通道转换为灰度图像
gray_image = np.mean(normalized_image, axis=-1)

# 将灰度图像堆叠在一起来创建伪彩色图像
colorized_image = np.stack([gray_image] * 3, axis=-1)

# 显示图像
plt.imshow(colorized_image)
plt.axis('off')
plt.show()

4.图像增强:前面显示的图像太模糊了,我觉得很难受,给它弄增强了,就明显一些。

python 复制代码
#图像增强
import cv2
# 将灰度图像转换为伪彩色图像
colorized_image = cv2.applyColorMap((gray_image * 255).astype(np.uint8), cv2.COLORMAP_JET)
# 显示图像
plt.imshow(colorized_image)
plt.axis('off')
plt.show()
相关推荐
TechWayfarer4 小时前
查询IP所在地的3种方案:从API到离线库,风控场景怎么选?
开发语言·网络·python·网络协议·tcp/ip
程序员榴莲4 小时前
Python 单例模式
开发语言·python·单例模式
hh.h.5 小时前
昇腾CANN ops-transformer 仓的 MC2 算子:MoE 模型的全到全通信
python·深度学习·transformer·cann
NiceCloud喜云6 小时前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
专注VB编程开发20年6 小时前
windows下python自带标准库 ≈ 70% 纯.py 源码,30% .pyd(DLL)
python
萌新小码农‍6 小时前
人工智能数学基础+python实例(人工智能学习day3)
开发语言·人工智能·python
毋语天8 小时前
FastAPI 进阶实战:请求体、文件上传、响应模型与数据校验
python·fastapi·api开发·数据校验·pydantic
ZhengEnCi8 小时前
09a-斯坦福 CS336 作业一:BPE 分词器
python·神经网络
测试员周周9 小时前
【Appium 系列】第18节-重试与容错 — 移动端测试的稳定性保障
人工智能·python·功能测试·ui·单元测试·appium·测试用例