标签: spectral-python

如何使用光谱python处理多光谱栅格文件?

我有兴趣使用Spectral Python (SPy) 来可视化和分类多波段栅格 GeoTIFF(不是高光谱数据)。目前看来只有.lan文件.gis格式是可读的。

我尝试将文件转换为.lanwith gdal_translate,但不支持图像格式( IOError: Unable to determine file type or type not supported)。

知道如何将该库用于非超光谱数据集吗?

python raster gdal geotiff spectral-python

5
推荐指数
1
解决办法
3407
查看次数

使用光谱python读取.img envi文件

我正在尝试打开一个 envi .img 文件,并且有一个具有相同名称的 .hdr 文件。在 .img 文件中,有两个图像,我可以使用以下代码读取它们。

from spectral import *
img = open_image('LC08_L1TP_029029_20130330_20170310_01_T1_sensor_B05.img')
Run Code Online (Sandbox Code Playgroud)

img(BSQ文件)的属性如下图

In[352] img

Out[352]: 

Data Source:   '.\LC08_L1TP_029029_20130330_20170310_01_T1_sensor_B05.img'
# Rows:           7311
# Samples:        7371
# Bands:             2
Interleave:        BSQ
Quantization:  16 bits
Data format:     int16
Run Code Online (Sandbox Code Playgroud)

我想从 img 中提取这两个图像。但是当我尝试时

img[:,:,1]
Run Code Online (Sandbox Code Playgroud)

它给了我一个大小为(7311,7371,1)的数组,但数组内的所有值都为零,但我知道它们应该是非零值。

我的问题是如何从 BSQ 文件中提取这两个图像?

spectral-python

5
推荐指数
1
解决办法
7776
查看次数

使用多项式变换进行图像变形

大纲

我试图通过基于与图像相关联的一些“质心”数据(每个时间步的峰值)生成多项式来扭曲图像(时间序列中的光谱峰值,但这并不重要)和增加多项式。这些原始多项式和增广多项式分别构成了我的“源”点和“目标”点,我试图使用 skimage.transform.warp() 来扭曲图像。

这种扭曲的目标是产生两个扭曲的图像(即重复该过程两次)。然后这些图像将彼此正相关,或者如果两个扭曲图像之一水平翻转(同样,这里不那么重要)则负相关

这是用于比较的示例输出: 简单的图像比较

(请注意,多项式增强是通过在每个多项式峰/谷处添加/减去噪声来执行的,与每个点的幅度(像素)成正比,然后通过这些增强点生成相同阶数的新多项式,在防止增广多项式取反的地方)。


代码片段

我通过创建 GeometricTransform 并将其作为 inverse_map 应用到 warp() 来在代码中实现这一点,如下所示:

from skimage import transform

# Create the transformation object using the source and destination (N, 2) arrays in reverse order
# (as there is no explicit way to do an inverse polynomial transformation).
t = transform.estimate_transform('polynomial', src=destination, dst=source, order=4)  # order = num_poly_degrees - 1

# Warp the original image using the transformation object
warped_image = transform.warp(image, t, order=0, mode='constant', cval=float('nan')) …
Run Code Online (Sandbox Code Playgroud)

python image-processing ransac scikit-image spectral-python

5
推荐指数
0
解决办法
225
查看次数

如何从光谱python库中的envi文件读取波长信息?

我正在研究 envi 格式的高光谱图像。我已经使用 Spectrum Python 库成功读取了它。现在,我想获得每个波段(波长中心)。请建议执行此任务的方法。

satellite-image envi spectral-python

2
推荐指数
1
解决办法
1909
查看次数