[Python小工具] 矩陣圖片互相轉換

Source: Deep Learning on Medium

#PIL Image與np.array間的轉換

在訓練圖像辨識時,不意外最容易遇到能不能生出模型要的Input,通常你想要同時引用多個資料庫,或是查看資料庫的圖片時,容易遇到以下狀況

Kaggle 人臉辨識資料庫csv檔

由左至右分別為[Emotion情緒]、[Usage用途]、[Pixels該圖資料]三個欄位,第三欄為我們的資料值,通常這樣讀進來Python會直接默認成string。

這時只需要利用string的內建函數(split)切割成一個又一個的數值,再轉成array利用image.fromarray函式處理即可,過程如下:

Output:

此時就可以看出你的圖片長甚麼樣子了,而原先發現的48*48矩陣也就是指圖中x軸與y軸的長度,透過這方法這樣就可以查看資料庫中的任意圖片。

結論

簡而言之,以上是針對資料表的元素集中在一列且為字串的處理方式,但假如只是要針對 圖 <> 矩陣的互相轉換,其實只要在兩行之間做轉換即可

img = np.array(im) # image轉numpy
im=Image.fromarray(img) # numpy轉image类
im.show() #顯示圖片