OPENCV从Yuyv Pixelformat视频框架创建YUV420或灰度垫子对象

OpenCV create YUV420 or grayscale Mat object from YUYV pixelformat video frame

本文关键字:灰度 对象 YUV420 创建 Yuyv Pixelformat 视频 框架 OPENCV      更新时间:2023-10-16

我正在尝试从QT应用程序处理视频帧。来自QML摄像机的输入是格式的YUYV,默认情况下我无法将其设置为其他类似YUV420的东西。我需要捕获框架并创建YUV420或灰度格式的垫子对象。

我尝试使用以下代码的CVTColor,它们在运行时都崩溃了 - color_yuv2gray_yvycolor_yuv2rgb_yuyvcolor_yuv2gray_yuyv

知道我该怎么做?

因此,在使用颜色转换代码稍微播放后,这是我发现为我工作的解决方案。

cv::Mat img = cv::Mat(m_videoHeight, m_videoWidth, CV_8UC2, input->bits());
cv::Mat gray;
cv::cvtColor(img, gray, cv::COLOR_YUV2GRAY_YVYU);

这将给定的YUYV垫子对象 - IMG转换为灰度垫子对象 - 灰色。输入 -> bits()是指视频框架缓冲区的第一位。