OpenCV从相机捕获YUYV,无需RGB转换

新手上路,请多包涵

我尝试使用 openCV/c++ 从 LI-USB30_V024 立体相机捕获左右图像,而不自动将其转换为 RGB。相机以 YUYV 格式输出图像。

我尝试使用 videoCapture.set(CV_CAP_PROP_CONVERT_RGB, false) 但我收到消息“HIGHGUI ERROR: V4L: Property (16) not supported by device”。

我想避免转换为 RGB 的原因是因为相机将左右视频一起打包成一个 YUYV 图像。两台相机都是单色的,据我所知,左图像信息在 Y 通道中编码,而右图像信息在 U 和 V 通道中编码。例如,如果我运行 guvcview,我会得到一个包含叠加的左右图像的单个图像。它看起来像一张黑白图像(左侧图像在 Y 通道中编码),顶部是绿色和粉红色图像(右侧相机在 UV 通道中编码)。我知道这听起来很不寻常,所以如果您对此有任何其他想法/问题,请不要犹豫。

我的目标是将图像捕获为 YUYV,以便我可以使用 split() 将左图像(Y 通道)与右图像(U 和 V 通道)分开并将它们都显示为单色图像。然而,一旦图像被转换为 RGB,亮度和色度通道就会混合在一起,并且不可能将两个图像分开。

综上所述,我需要在不将其转换为 RGB 的情况下捕获视频,以便保留 YUYV 格式。这将允许我分开左右图像。

或者 我需要一种分别捕获左右图像的方法,但我认为这不太可能。

我认为这在 v4l 中是可能的,但如果可能的话,我宁愿只使用 openCV。

谢谢!

原文由 titch 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

我认为在 openCV 中没有办法做到这一点。最后,用 V4L2 捕获帧并将它们存储在 openCV Mats 中并没有太大的麻烦。

原文由 titch 发布,翻译遵循 CC BY-SA 3.0 许可协议

我曾经在一台产生 YUV420 数据的相机上工作,在配置它时遇到了一些问题。但是这个功能对我有用。

videoCapture.set(CV_CAP_PROP_CONVERT_RGB, 0)

您能否检查是否有任何其他配置导致该问题。

原文由 TerryLu 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题