实测代码如下:


#include <iostream>
#include <stdio.h>
#include <string.h>
#include <opencv2/opencv.hpp>using namespace cv;
using namespace std;char buff[2000000];int main()
{int width = 1280;int height = 960;int yuvNV12_size = width * height * 3 / 2;int rgb24_size = width * height;Mat yuvNV12;Mat rgb24;vector<cv::String> files_yuv;glob("D:/work/data-yuv/*.yuv", files_yuv);for (size_t i = 0; i < files_yuv.size(); i++){printf("image file : %s \n", files_yuv[i].c_str());//1.read nv12 file to nv12 matFILE* f = fopen(files_yuv[i].c_str(), "r");memset(buff, 0, 2000000);fread(buff, 1, yuvNV12_size, f);yuvNV12.create(height * 3 / 2, width, CV_8UC1);memcpy(yuvNV12.data, buff, yuvNV12_size);//2.cvt nv12 mat to rgb24 matcvtColor(yuvNV12, rgb24, COLOR_YUV2BGR_NV12);//3.imwritestd::string savePath = files_yuv[i] + "_rgb.jpg";imwrite(savePath, rgb24);fflush(f);fclose(f);}return 0;
}

需要注意:

  1. char buff[2000000]预分配的数组较大,如果放置到main函数里面,会有如下报错:

0xC00000FD: Stack overflow (参数: 0x0000000000000001, 0x000000E3CE403000)。
Unhandled exception at 。。。。。 : Stack overflow (parameters: 0x0000000000000001。。。。。

解决办法:
(1)如测试用例,把该数组定义成全局变量;
(2)根据new, delete来创建数组:

char buff* = new char[2000000];
....
delete[] buff;

本测试用例会反复使用该buff,建议用方式1;

  1. c4996 error warning (fopen,fopen_s)

在Project properties->Configuration Properties->C/C+±>Preprocessor->Preprocessor Definitions 添加_CRT_SECURE_NO_WARNINGS

opencv 读取NV12格式(.yuv)文件,并转为RGB格式保存为JPG相关推荐

  1. opencv 解析yuv_通过OpenCV读取并显示YUV视频文件

    前言 Opencv中通常是读取 avi 格式的视频文件,下面程序是直接读取 YUV格式的视频文件并显示出来. 这里需要将YUV读取出来,使用Mat格式保存再使用 cv::cvtColor() 将每帧的 ...

  2. 读取mysql数据库的数据,转为json格式

    # coding=utf-8 ''' Created on 2016-10-26 @author: Jennifer Project:读取mysql数据库的数据,转为json格式 ''' import ...

  3. HM-16.0编码过程:将YUV文件编码成HEVC格式的码流

    HM-16.0编码:将YUV文件编码成HEVC格式的码流 注: 1   为了快速优化运行(不调程序的时候),可以将程序的版本设为"release",否则还是设为"debu ...

  4. LabelMe标记后的json文件怎么转为COCO格式

    LabelMe标记后的json文件怎么转为COCO格式 步骤如下: Step 1: 下载labelme ,链接为https://github.com/wkentaro/labelme Step 2: ...

  5. vue项目,把图片文件流转为base64格式以图片形式展示在前端

    问题描述 前台需要展示图片,期望后台直接返回图片地址,但是后台给的是的文件流而不是一个图片地址,需要把文件流转为base64的格式展示出来. 请求后台接口时,返回图片内容如下: 上图不是base64格 ...

  6. pythonutf8转gbk,Python实现把utf-8格式的文件转换成gbk格式的文件

    需求:将utf-8格式的文件转换成gbk格式的文件 实现代码如下: 代码如下: def ReadFile(filePath,encoding="utf-8″): with codecs.op ...

  7. python中utf-8和gbk编码格式_Python实现把utf-8格式的文件转换成gbk格式的文件

    需求:将utf-8格式的文件转换成gbk格式的文件 实现代码如下: 复制代码 代码如下: def ReadFile(filePath,encoding="utf-8"): with ...

  8. cad导出pdf_如何使用CAD手机看图软件将DWG格式图纸文件转换成PDF格式?

    在使用CAD手机看图软件修改好CAD图纸后想要发送给其他人,怎么将手机中DWG格式图纸文件转换成PDF格式呢?接下来就给大家介绍一下CAD手机看图软件浩辰CAD看图王手机版中将DWG格式图纸文件转换成 ...

  9. 如何将字库生成工具生成的 .DZK/ . bin格式的文件转成.c格式文件

    如何将字库生成工具生成的 .DZK/ . bin格式的文件转成.c格式文件 在我们项目开发的过程中,特别是做界面显示的时候,经常会遇到如 :多国文字点阵字库生成器TS3等软件其生成的.DZK格式文件, ...

  10. 如何在Photoshop中载入使用pat格式的文件?ps图案pat格式文件载入教程

    PS中有一种为"pat"后缀的ps图案模式,小编今天为大家带来了如何在Photoshop中载入使用pat格式的文件?ps图案pat格式文件载入教程,有需要的小伙伴快来看看吧! 在桌 ...

最新文章

  1. LNMP环境搭建——PHP篇
  2. k8s pod健康检查(存活、就绪检查):livenessProbe策略配置示例
  3. 正方体最快最简单画_素描新手入门第一幅画可不只是“正方体”
  4. 得到进程id_搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?
  5. 光驱怎么挂载第二个光驱_电脑光驱怎么安装?台式机安装光驱的方法
  6. 绘制三维散点图_使用Origin,轻松绘制三维散点图
  7. mac下安装编译ffmepg方法
  8. python基础二:函数
  9. 解读加拿大综合类大学排名 提升雅思成绩刻不容缓
  10. Linux字符设备驱动之LED驱动
  11. MFC 添加静态图片(Picture Control控件)
  12. 2022-2028年中国太阳能发电系统市场调查与市场需求预测报告
  13. Rect.OverLaps() 改进
  14. 迅雷后门 迅雷签名可疑文件 请大家关注 内部邮件大爆料 过全部杀毒软件
  15. CSS常用英语词汇大全
  16. 数据清洗与处理第二章
  17. jQuery+CSS3炫酷机械键盘js特效
  18. 网易严选打造数仓规范和评价体系实践
  19. 无障碍感受 北京之美
  20. Freeswitch一些高级功能-配置中文语音提示等

热门文章

  1. 在麒麟v10系统上面安装达梦数据库8
  2. 戴姆勒与Infosys结成战略合作伙伴关系,推动创新及IT基础设施转型
  3. 如何将PDF删除水印?PDF怎么删除水印
  4. 【OFDM】OFDM正交频分复用---入门总结
  5. 人工智能 2.知识表示
  6. java实现二维码生成功能
  7. 比MySQL快801倍,字节阿里争相 部署,真香!
  8. Flink SQL自定义connector
  9. Python的人工智能模拟框架
  10. java String工具类/字符串工具类 StringUtil