我正在尝试处理来自Qt应用程序的视频帧。 QML摄像机的输入格式为YUYV,默认情况下我无法将其设置为YUV420。我需要捕获帧并创建YUV420或灰度格式的Mat对象。
我用以下代码尝试了cvtColor,它们在运行时都崩溃了- COLOR_YUV2GRAY_YVY COLOR_YUV2RGB_YUYV COLOR_YUV2GRAY_YUYV
你知道我该怎么做吗?
答案 0 :(得分:0)
所以在尝试了颜色转换代码后,这是我发现对我有用的解决方案。
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 Mat对象-img转换为灰度Mat对象-灰色。 input-> bits()指视频帧缓冲区的第一位。