| 
 | 
 
 
1.圖像目錄為手動方式建立,請於圖像目錄內放置多個圖檔。 
- def createFileList(myDir,format='.jpg'):
 
 -   fileList=[]
 
 -   print(myDir)
 
 -   for root,dir,files in os.walk(myDir,topdown=True):
 
 -     print('root:',root)
 
 -     print('dir:',dir)
 
 -     print('files:',files)
 
 -     for name in files:
 
 -       if name.endswith(format):
 
 -         fullName=os.path.join(root,name)
 
 -         fileList.append(fullName)
 
 - return fileList
 
  複製代碼os.walk 
  • 代表作業系統開始於這個資料夾進行檔案探索。 
  • 會有三個回傳值 
    • root 目前的目錄名稱 
    • dir 子資料夾名稱,若沒有子資料夾則空白 
    • files 檔案清單 
• 兩個參數 
  • myDir 代表你要探索的目錄 
  • topdown 
    • =True 代表優先查看根目錄 
    • =False 代表修先查看子目錄  
2.將圖像轉換為灰階後再轉Numpy資料後儲存。 
python 圖像  csv 
 
 
- for file in myFileList:
 
 -   img_file=Image.open(file)
 
 -   width,height=img_file.size
 
 -   format=img_file.format
 
 -   mode=img_file.mode
 
 -   img_gray=img_file.convert('L')
 
 -   value1=np.array(img_gray.getdata(),dtype=np.int)
 
 -   value=np.array(img_gray.getdata(),dtype=np.int).reshape((img_gray.size[1],img_gray.size[0]))
 
 -   value=value.flatten()
 
 -   with open('img_pixels.csv','a',newline='') as f:
 
 -     writer=csv.writer(f)
 
 -     writer.writerow(value)
 
  複製代碼- <font size="4">PIL的size將會輸出寬width與高height。
 
 - • 可是影像的寬與高,相對於矩陣資料就是columns與rows。
 
 - • PIL是寬X高,而Numpy的計算則是rows Xcolumns
 
 - • img_gray.size[1] 代表圖像的高,也代表圖像轉矩陣後的rows
 
 - • img_gray.size[0] 代表圖像的寬,也代表圖像轉矩陣後的columns</font>
 
  複製代碼• PIL語法產生的影像物件不能直接用print讀取,不能直接以矩陣方式顯示。 
• .convert('L') 轉換為灰階的色彩格式。 
• np.array(img_gray.getdata(),dtype=np.int) 將會產生一維矩陣資料,這資料就可以儲存作為後續的辨識學習。 
• 而reshape動作主要是重建圖檔。 
• flatten( )代表將二維資料進行平坦化。  VGG16顯示特徵  
• 因為VGG16預設圖像大小為224X224,所以圖像輸入後得做大小調整。 
• model=VGG16() 
• model=Model(inputs=model.inputs,outputs=model.layers[1].output) 
• model.summary() 
• 上述程式只是利用VGG16()這個keras應用程式application內的一個捲積層,之後查看特徵擷取的過程。 
• 我們的模型並不完整  
 
 
 
 |   
 
 
 
 |