opencv无法设置禁用RGB转换问题

树莓派连接摄像头,摄像头输出格式为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相关库更新到最新版后,问题解决。

相关推荐
冬奇Lab1 小时前
每日一个开源项目(第139篇):Voicebox - 本地运行的开源 ElevenLabs 替代品
人工智能·开源·资讯
冬奇Lab1 小时前
Skill 系列(03):Skill 设计范式——5 个模式让输出从混沌到可预测
人工智能·开源·agent
IT_陈寒3 小时前
Python搞不定字符串编码?这破玩意坑我两小时!
前端·人工智能·后端
大模型真好玩5 小时前
什么是Loop Engineering?最通俗易懂的Loop Engineering核心概念
人工智能·agent·deepseek
叁两5 小时前
前端转型AI Agent该如何学习?(前置篇)
前端·人工智能·node.js
LaiYoung_5 小时前
🎁 送你一套超好用超实用的 FE AI-Coding Skills
前端·人工智能·开源
ZzT8 小时前
怎么做才不会被 AI 替代?
人工智能·程序员
道友可好8 小时前
从今天开始:你的第一个 Harness Engineering 实践
前端·人工智能·后端
小姜前线技术9 小时前
AI回答代码块高亮加一键复制
人工智能