2017-07-18 8 views
1

envi .imgファイルを開こうとしていて、同じ名前の.hdrファイルがあります。 .imgファイルには、次のコードを使って読むことができる2つのイメージがあります。を読む.imgファイルをスペクトルpythonで

from spectral import * 
img = open_image('LC08_L1TP_029029_20130330_20170310_01_T1_sensor_B05.img') 

そしてIMG(BSQファイル)の性質は、私がIMGから、これら2枚の画像を抽出したいどのような数字

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 

を以下の通りです。私は

img[:,:,1] 

にしようとしていますし、それは私のサイズ(7311,7371,1)の配列を与えるが、配列内のすべての値がゼロであるが、私は知っているとき、彼らはゼロ値以外でなければなりません。

私の質問はどのようにBSQファイルからこれらの2つのイメージを抽出できますか?

答えて

0

あなたはこのバリアントを試すことができます。

from spectral import * 

img = open_image('LC08_L1TP_029029_20130330_20170310_01_T1_sensor_B05.img') 
img_open = img.open_memmap(writeable = True) 
img_band = img_open[:,:,1] 
envi.save_image('new_image.bsq', ext='bsq', interleave = 'BSQ') 

または

このバリアントは、HDRファイルで開いている画像を必要とします。しかし、それは以前の変種のように動作するはずです。

from spectral import * 
img = envi.open('<name of hdr file>') 
img_open = img.open_memmap(writeable = True) 
img_band = img_open[:,:,1] 
envi.save_image('new_image.bsq', ext='bsq', interleave = 'BSQ')