You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCV2生成帧均值数组后,PIL转换报错的问题咨询

问题:PIL无法处理计算均值后的图像数组?

我找到一个创建帧数组的不错示例,但不知道如何正确在PIL中使用它。为演示问题,我编写了以下代码:

import numpy as np
import cv2
from PIL import Image, ImageTk

nframes = 10
frame = cv2.imread('test.jpg')

(x,y,d)=frame.shape
frames = np.empty((nframes,x, y, d))

for k in range(nframes):
    frames[k,:,:,:] = frame

frame_avg=np.int8(np.mean(frames,0))
frame_avg.shape

cv2.imwrite('test_avg.jpg',frame_avg)

Image.fromarray(frame)
Image.fromarray(frame_avg)

我读取了图片test.jpg并将其重复10次存入数组frames,计算均值后保存为test_avg.jpg,该图片显示正常。将原帧转换为PIL图像可以正常运行,但最后一行代码抛出如下错误:

---> 20 Image.fromarray(frame_avg)

/usr/local/lib/python3.10/dist-packages/PIL/Image.py in fromarray(obj, mode)
   3313             typekey_shape, typestr = typekey
   3314             msg = f"Cannot handle this data type: {typekey_shape}, {typestr}"
-> 3315             raise TypeError(msg) from e
   3316     else:
   3317         rawmode = mode

TypeError: Cannot handle this data type: (1, 1, 3), |i1

请问我哪里出错了?

顺颂时祺,
克里斯托夫


内容的提问来源于stack exchange,提问作者Christof Bodner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:43:13