本文介绍了如何从OpenCV中的YUV文件中读取一个帧?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从OpenCV中的YUV文件中读取一个帧?

How to read a frame from YUV file in OpenCV?

推荐答案

如上所述,有很多类型的YUV格式:

As mentioned, there are MANY types of YUV formats:

要在OpenCV中从YUV格式转换为RGB非常简单:

To convert to RGB from a YUV format in OpenCV is very simple:


  1. 为该帧数据创建适当大小的一维OpenCV Mat

  2. 为具有所需维度和3个通道的RGB数据创建一个空Mat

  3. 最后使用cvtColor在两个Mats之间进行转换,使用正确的转换标志enum

以下是 YV12 格式的YUV缓冲区示例:

Here is an example for a YUV buffer in YV12 format:

Mat mYUV(height + height/2, width, CV_8UC1, (void*) frameData);
Mat mRGB(height, width, CV_8UC3);
cvtColor(mYUV, mRGB, CV_YUV2RGB_YV12, 3);

关键技巧是在之前定义RGB Mat 的尺寸转换。

The key trick is to define the dimensions of your RGB Mat before you convert.

这篇关于如何从OpenCV中的YUV文件中读取一个帧?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-18 00:23