2017-08-03 63 views
0

我正在開發一個動物分類數據集中的CNN,它們被分成2個文件夾,2個文件夾涉及另一個子文件夾......這個結構有四層,現在我想加載它們並將它們轉換爲n維數組以饋送到張量流,這些文件夾的名稱就是標籤。 我希望有人能幫助我一些具體的代碼或一些有用的材料。 非常感謝您提前!如何從python中的不同文件夾和子文件夾中加載圖像

在這裏,我會舉一些例子: Anisopleura蜻科利奇,1815個Trithemis極光 Zygoptera Calopterygidae Selys,1850個Calopteryx芨芨草 極光和芨芨草是這個問題的標籤,他們也五樓子文件夾的名稱,圖像存儲在這些文件夾中。 C:\ Users \ Seth \ Desktop \ dragonfly \ Anisopleura \ Libellulidae Leach,1815 \ Pseudothemis \ zonata

這是一條路徑。

我使用openface庫進行人臉識別,在這個圖書館iterImgs
+0

文件夾佈局的示例將非常有用 – GPhilo

+0

請先顯示您的目錄結構。 – Wonjin

+0

C:\ Users \ Seth \ Desktop \ dragonfly \ Anisopleura \ Aeshnidae Leach,1815 \ Anax \ parthenope ##這是一個例子,我想也許我從下面的答案中得到我的答案。 –

回答

1

os.walk()是你在找什麼。

import os 

# traverse root directory, and list directories as dirs and files as files 
for root, dirs, files in os.walk("."): 
    path = root.split(os.sep) 
    print((len(path) - 1) * '---', os.path.basename(root)) 
    for file in files: 
     print(len(path) * '---', file) 

此代碼將允許您遞歸地解析所有文件夾和子文件夾。你會得到子文件夾的名稱(標籤在你的案例中)以及變量file中的所有文件。

接下來的工作是爲您創建一個字典(或numpy多維數組)來爲每個標籤(或子文件夾)存儲圖像的特徵。

+0

謝謝!其實我理解這個功能,但我認爲它只能解決兩層子文件夾問題,在我的情況下,有四層或更多層,例如C:\ Users \ Seth \ Desktop \ dragonfly \ Anisopleura \ Aeshnidae Leach,1815 \ Anax \ parthenope,這是一種數據集,我能爲這個問題做些什麼? –

+0

你能詳細介紹那些(這?我真的不知道如何切斷你的路徑)路徑需要提取的標籤? – iFlo

+0

C:\ Users \ Seth \ Desktop \ dragonfly \ Anisopleura \ Aeshnidae Leach,1815 \ Anax \ parthenope ##在本例中,「parthenope」是標籤,從動物學的概念來看,這些文件夾的名稱表示 亞目,家族,屬,蜻蜓的種類。 我不知道我是否清楚,我希望你能理解我說的話。 –

1

是方法,讓你列表中選擇一個目錄下的所有圖片

對於細節iterImgs

from openface.data import iterImgs 

imgs = list(iterImgs("Directory path")) 

print imgs # print all images in Directory path also in Tree 

或另一種方式定義一個vailed擴展

vailed_ext = [".jpg",".png"] 
import os 
f_list = [] 
def Test2(rootDir):  
    for lists in os.listdir(rootDir): 
     path = os.path.join(rootDir, lists) 
     filename, file_extension = os.path.splitext(path) 
     if file_extension in vailed_ext: 
      print path   
      f_list.append[path] 
     if os.path.isdir(path): 
      Test2(path) 

Test2("/home/") 
print f_list 
+0

謝謝!但是,如果我想從多個子文件夾(不同路徑)加載許多圖像,我該怎麼辦? –

+0

@EnochYang我更新我的答案,檢查它 – Kallz

+0

我明白了,真的很感謝你! –

相關問題