opencv无法设置禁用RGB转换问题
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('Y', 'U', 'Y', 'V'))# 设置摄像头为 YUYV。使用opencv获取视频流,通过cap.set(cv2.CAP_PROP_CONVERT_RGB, 0)设置禁用自动转换RGB格式,但是打印输出的数据依旧是RGB。经过仔细检查发下,执行cap.set(cv2.CAP_PROP_
树莓派连接摄像头,摄像头输出格式为YUYV(YUV422)。
通过执行 v4l2-ctl --list-formats --device=/dev/video0 可以看的具体的摄像头的数据格式。

使用opencv获取视频流,通过cap.set(cv2.CAP_PROP_CONVERT_RGB, 0)设置禁用自动转换RGB格式,但是打印输出的数据依旧是RGB。
设置
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('Y', 'U', 'Y', 'V')) # 设置摄像头为 YUYV
依旧输出的还是RGB,
cap = cv2.VideoCapture(0,cv2.CAP_V4L)
cap.set(cv2.CAP_PROP_CONVERT_RGB, 0) # 去除默认的RGB转换
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('Y', 'U', 'Y', 'V')) # 设置摄像头为 YUYV
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
经过仔细检查发现,执行cap.set(cv2.CAP_PROP_CONVERT_RGB, 0)的时候会报警
[ WARN:0@2.647] global ./modules/videoio/src/cap_gstreamer.cpp (1716) setProperty OpenCV | GStreamer warning: GStreamer: unhandled property
报警导致此指令执行失败,会自动将yuv数据转换为rgb。
解决方法:
执行sudo apt-get install gstreamer1.0* ,将gstreamer相关库更新到最新版后,问题解决。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)