2014-01-18 50 views
0

我有20個Erdas想象圖像。我想分別將這些圖像讀入變量「x1」,「x2」,...「x20」,作爲矩陣或數組,以便在圖像中查詢。我需要讀取每個像素值,然後重新分配它們。 請幫助..閱讀ERDAS Imagine將圖像分解爲單個變量作爲矩陣

+0

你有這樣一個形象的例子嗎? – M4rtini

+0

你在尋找什麼樣的信息? – Akhil

+0

圖像的格式。如果它們是標準圖像,則非常簡單。如果它是一種特殊的\專有格式,它可能不那麼簡單。 – M4rtini

回答

1

您可以使用GDAL將圖像加載到數組中。

例子:

import numpy 
import gdal 
from gdalconst import * 

dataset = gdal.Open("/path/image.x", GA_ReadOnly) 
image_array = ds.ReadAsArray() 
image_array[pix_y,pix_x,band] = 10 

image_arraynumpy陣列,這樣你就可以存取權限(或過程)每個單獨的像素:

我不知道,但我認爲你可以做到這一點簡單:

from osgeo import gdalnumeric 

image_array = gdalnumeric.LoadFile(raster) 

編輯------------------------------------------- -----------------------

添加加載一個目錄中的所有圖像的循環:

from os import listdir 
from osgeo import gdalnumeric 

image_list = [] 
for file_path in os.listdir("somedirectory"): 
    image_array = gdalnumeric.LoadFile(file_path) 
    image_list.append(image_array) 

#image_list[i] will access to each image array 
+0

非常感謝。這工作。我只需要找出動態創建變量的循環。再次感謝:) – Akhil

+0

它接受輸入的工作。我已經知道了。我的查詢是關於如何運行一個循環來自動輸入每個圖像到一個單一的數組。 image_array1 - > image1.img image_array2 - > image2.img 。 。 。 我已經想出了圖像輸入到數組中。我需要了解如何循環動態變量.. – Akhil

+0

@Akhil我不知道如果我明白...你是否試圖將20個圖像加載到20個數組?如果是這樣,這是非常簡單的(檢查編輯我的答案)。在此鏈接中,您可以獲得有關獲取文件夾中的文件的更多信息:http://stackoverflow.com/questions/3207219/how-to-list-all-files-of-a-directory-in-python – phyrox