使用PIL(Pillow)的Image.fromarray轉換fer2013數據集報錯

kaggle的一個表情識別的訓練集。

 

 

fer2013,通過pandas的read_csv得到的是這個類型    '<i8'

普通的,如果使用Image.open()打開一張圖,得到的是    '|u1'

 

PIL支持的就只有這些類型:

Image._fromarray_typemap is : {((1, 1), '|u1'): ('L', 'L'), ((1, 1), '|i1'): ('I', 'I;8'), ((1, 1), '<u2'): ('I', 'I;16'), ((1, 1), '>u2'): ('I', 'I;16B'), ((1, 1), '<i2'): ('I', 'I;16S'), ((1, 1), '>i2'): ('I', 'I;16BS'), ((1, 1), '<u4'): ('I', 'I;32'), ((1, 1), '>u4'): ('I', 'I;32B'), ((1, 1), '<i4'): ('I', 'I'), ((1, 1), '>i4'): ('I', 'I;32BS'), ((1, 1), '<f4'): ('F', 'F'), ((1, 1), '>f4'): ('F', 'F;32BF'), ((1, 1), '<f8'): ('F', 'F;64F'), ((1, 1), '>f8'): ('F', 'F;64BF'), ((1, 1, 2), '|u1'): ('LA', 'LA'), ((1, 1, 3), '|u1'): ('RGB', 'RGB'), ((1, 1, 4), '|u1'): ('RGBA', 'RGBA')}

 

python3.6,所以是Pillow,更新到最新,沒解決問題
    PILLOW_VERSION = '4.2.1'

 

array的來源就是split的字符串,也不該有什麼綁定的屬性自動傳入array了(最開始以爲和編碼格式之類的有關係,所以跑偏了)

因爲是array帶的屬性,所以去看np.array的說明,這個應該就是array的數據類型,默認情況下,應該按滿足最低需求的來準備。代碼裏是dtype=int,可能因爲系統是64的,就算成64,自己主動指定dtype=np.int32,解決問題。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章