使用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,解决问题。

 

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