本文介绍了如何从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:
- 为该帧数据创建适当大小的一维OpenCV Mat
- 为具有所需维度和3个通道的RGB数据创建一个空Mat
- 最后使用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文件中读取一个帧?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!