OpenCV(C++):如何显示 yuv 文件?

Posted

技术标签:

【中文标题】OpenCV(C++):如何显示 yuv 文件?【英文标题】:OpenCV (C++) : How to imshow yuv file? 【发布时间】:2020-09-16 19:45:49 【问题描述】:

我正在用 C++ 学习 OpenCV,但是出了点问题..

我想显示 yuv 文件,但我的代码出错了。

代码:

Mat img = imread("myimage.yuv"); imshow("img", img);

有人知道我的代码出了什么问题,我该如何解决?

【问题讨论】:

这能回答你的问题吗? How to read a frame from YUV file in OpenCV? 【参考方案1】:

你需要先打开文件:

FILE *YUV_FILE = fopen( "YourPAth\\YourFileName.yuv", "rb" );

创建一个指针:

char *databuffer = new char[ frameWidth*frameHeight*ChannelCount];

然后使用 fread读取数据到指针databuffer

现在您可以使用以下命令创建一个 opencv Mat

 cv::Mat OpencvImage(Size(frameWidth, frameHeight), CV_8UC3, databuffer, Mat::AUTO_STEP);

【讨论】:

以上是关于OpenCV(C++):如何显示 yuv 文件?的主要内容,如果未能解决你的问题,请参考以下文章

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

C++ YUV420文件读取与显示,绘制矩形框,绘制线段(绘制直线),绘制多边形(常用YUV数据格式——YUV420P中的YU12与YUV420SP中的NV21)

C++ YUV420文件读取与显示,绘制矩形框,绘制线段(绘制直线),绘制多边形(常用YUV数据格式——YUV420P中的YU12与YUV420SP中的NV21)

如何将rgb 模式转换成 yuv 模式

如何在 C++ OpenCV 中显示带有 putText 的计时器结果?

使用 OpenCV 将 YUV 转换为有损压缩