最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

TypeError: Cannot handle this data type: (1, 1, 28),

IT圈 admin 33浏览 0评论

TypeError: Cannot handle this data type: (1, 1, 28),

PIL和numpy相互转换方式如下:

from PIL import Image#PIL image转成numpy
np_img = np.asarray(PIL_img)  #参数时PIL类型的图片
或 
np_img = np.array(PIL_img)#将array准成PIL image
Image.fromarray(np.uint8(np_img))

但是直接用Image.fromarray(np.uint8(data))转换会报错:TypeError: Cannot handle this data type: (1, 1, 28), |u1,为啥啊,我哭了,在网上搜了一圈也没找到答案,然后我从可以转换成功的代码入手,终于发现问题了,太难了也!
原来,PIL需要的格式是(W,H,C),而SVHN数据集的格式是(C,W,H)所以又要进行转换了,把(C,W,H)变为(W,H,C):

img.transpose(1,2,0)

然后,就可以愉快的转换了!

TypeError: Cannot handle this data type: (1, 1, 28),

PIL和numpy相互转换方式如下:

from PIL import Image#PIL image转成numpy
np_img = np.asarray(PIL_img)  #参数时PIL类型的图片
或 
np_img = np.array(PIL_img)#将array准成PIL image
Image.fromarray(np.uint8(np_img))

但是直接用Image.fromarray(np.uint8(data))转换会报错:TypeError: Cannot handle this data type: (1, 1, 28), |u1,为啥啊,我哭了,在网上搜了一圈也没找到答案,然后我从可以转换成功的代码入手,终于发现问题了,太难了也!
原来,PIL需要的格式是(W,H,C),而SVHN数据集的格式是(C,W,H)所以又要进行转换了,把(C,W,H)变为(W,H,C):

img.transpose(1,2,0)

然后,就可以愉快的转换了!

发布评论

评论列表 (0)

  1. 暂无评论