光谱图像的可视化
高光谱图像具有较高的光谱维度,无法像RGB图像一样直接进行可视化。
imgvision
库用于进行图像处理与质量评价。该库仅基于Numpy库进行编写,通过矩阵的方式对图像进行快速处理,包括不限于光谱图像的不同光源下颜色空间转换、RGB图像不同光源下的色空间转换、光谱图像余弦距离的监督聚类、图像的质量评价等。
安装imgvision 1.7.0
imgvision
通过pip直接进行安装:
pip install imgvision
相比较1.6.5,新版本重写架构,提升了光谱图像转换速度。此外还支持将光谱图像转换为NiKon D700 相机下的RGB图像。其他参数与函数使用方法未发生变化。
高光谱图像可视化
imgvision.spectra( )将进行快速的高光谱图像可视化。
import imgvision as iv
import numpy as np
import matplotlib.pyplot as plt
#导入高光谱图像
HSI = np.load('Hyperspectral_Image.npy')
print(HSI.shape)
#(512,512,31) 该光谱图像是 空间维度512×512,光谱维度31(400nm~700nm 10nm间隔)
#光谱图像的RGB显示
#创建转换器
convertor = iv.spectra()
#RGB图像转换
RGB = convertor.space(HSI)
# RGB图像显示
plt.imshow(RGB)
plt.show()
以上案例详细参数为,400nm~700nm 间隔10nm的高光谱图像在D65光源下AdobeRGB展示结果。如果需要对其他波段范围,其他间隔的高光谱图像,在不同光源下的不同颜色空间展示,下面的案例将详细阐述。以下案例将展示如何将一张任意波段范围以及波段间隔的高光谱图像转换至不同光源下不同颜色空间的影响操作
import imgvision as iv
import numpy as np
import matplotlib.pyplot as plt
#导入高光谱图像
HSI = np.load('Hyperspectral_Image2.npy')
print(HSI.shape)
#(225,246,87) 该光谱图像是 空间维度225×246,光谱维度87(370nm~800nm 间隔5nm)
#光谱图像的RGB显示
#创建转换器 illuminant='D50'表示D50下显示。支持光源包括A/B/C/D50~75,以及自定义光源
#band 为波段参数,如370~800nm.间隔5nm 即 band = np.arange(370,805,5); 若370~702nm.间隔4nm 即 band = np.arange(370,706,4)
convertor = iv.spectra(illuminant='D50',band = np.arange(370,805,5))
#RGB图像转换 若展示sRGB则space='srgb';若展示XYZ图像,则space='xyz';若展示NikonD700相机的显示结果,则space='nkd700'. 注意nkd700下的RGB未经过Gamma校正。
Image = convertor.space(HSI,space='srgb')
# 图像显示
plt.imshow(Image)
plt.show()
版权声明:本文为Syuhen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。