0
点赞
收藏
分享

微信扫一扫

PIL图像处理时使用np.unit8转化报错: Cannot handle this data type: (1, 1), |O

闲云困兽 2022-04-24 阅读 75

      今天遇上了一个错误,让我折腾了许久:

        详情如下:

Traceback (most recent call last):
  File "F:\python36\lib\site-packages\PIL\Image.py", line 2772, in fromarray
    mode, rawmode = _fromarray_typemap[typekey]
KeyError: ((1, 1), '|O')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "main.py", line 117, in <module>
    main()
  File "main.py", line 79, in main
    one_judge=recognition.singleJudge(frame,one_box)
  File "F:\project\recognition.py", line 100, in singleJudge
    one_judge=modelPredict(classifyModel,one_cut_img)
  File "F:\project\recognition.py", line 73, in modelPredict
    image = loadSingleImage(img)
  File "F:\project\recognition.py", line 59, in loadSingleImage
    image = np.array(Image.fromarray(np.array(img)).resize((224, 224)))
  File "F:\python36\lib\site-packages\PIL\Image.py", line 2774, in fromarray
    raise TypeError("Cannot handle this data type: %s, %s" % typekey) from e
TypeError: Cannot handle this data type: (1, 1), |O

          查了一下网上的资料,找到一个解决办法说是在使用Image.fromarray方法的时候对数据进行限定,加入np.unit8,我加入之后依旧报错,报错如下:

       详情如下:

Traceback (most recent call last):
  File "main.py", line 117, in <module>
    main()
  File "main.py", line 79, in main
    one_judge=recognition.singleJudge(frame,one_box)
  File "F:\project\recognition.py", line 100, in singleJudge
    one_judge=modelPredict(classifyModel,one_cut_img)
  File "F:\project\recognition.py", line 73, in modelPredict
    image = loadSingleImage(img)
  File "F:\project\recognition.py", line 61, in loadSingleImage
    image = np.array(Image.fromarray(np.uint8(np.array(img))).resize((224, 224)))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'Image'

       经过几次改动尝试后,最终的解决方法如下:

data = np.array(img.resize([width, height]),np.uint8(Image.BILINEAR))
image = np.array(Image.fromarray(np.uint8(data)))

        记录一下备忘。

举报
0 条评论