Mediapipe 0.9.1.0加载OpenCV帧触发TypeError问题求助
解决MediaPipe 0.9.1.0中OpenCV帧转mp.Image的TypeError问题
错误原因
OpenCV读取的视频帧默认是BGR通道顺序,而你指定的mp.ImageFormat.SRGB要求输入为RGB通道的数组;另外需确保帧数据类型为uint8(OpenCV默认输出是该类型,但转换通道后需保持)。
修正代码
import mediapipe as mp import cv2 cap = cv2.VideoCapture("你的视频文件路径") cap.set(cv2.CAP_PROP_POS_FRAMES, 10) ret, frame = cap.read() # 将OpenCV的BGR帧转为RGB格式 rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 创建符合要求的MediaPipe Image对象 mp_image = mp.Image(format=mp.ImageFormat.SRGB, data=rgb_frame)
补充说明
官方文档中的示例代码能正常运行,是因为其输入的图像/帧本身就是RGB通道顺序(比如用PIL读取图片),而OpenCV的视频捕获接口默认输出BGR格式,因此必须增加通道转换步骤才能匹配MediaPipe的SRGB格式要求。
内容的提问来源于stack exchange,提问作者Shekar Tippur
相关产品推荐
相关产品推荐

