今天遇上了一个错误,让我折腾了许久:
详情如下:
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)))
记录一下备忘。