YUV转为jpg图像的实现


Posted in Python onDecember 09, 2019

调用opencv库,将yuv图像转为jpg图像。

代码如下:

# define _CRT_SECURE_NO_WARNINGS
#include <string>
#include <iostream>
#include <fstream>

#include <cv.h> 
#include <highgui.h> 

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;
using namespace std;
int main()
{
  int iWidth;
  int iHeight;
  int iFrameNum;
  int iImageSize;

  iWidth = 640;
  iHeight = 480;
  char *inputFileName = "640x480_YUV400.yuv";

  FILE *fpIn;
  if (fopen_s(&fpIn, inputFileName, "rb"))
  {
    cout << "File Open Failed!\n";
    system("pause");
    exit(1);
  }

  iImageSize = iWidth * iHeight;

  unsigned char *InData = (unsigned char*)malloc(iImageSize * sizeof(unsigned char));
  unsigned char *uvData = (unsigned char*)malloc(iImageSize / 2 * sizeof(unsigned char));//uv
  memset(uvData, 128, iImageSize / 2);

  Mat frameYUV(iHeight * 3 / 2, iWidth, CV_8UC1);
  Mat frameBGR;
  Mat frameRGB;
  Mat frameYUV420;

  char outName[128];
  iFrameNum = 0;
  while (1)
  {
    size_t size = fread(InData, sizeof(unsigned char), iImageSize, fpIn);
    if (size == 0)
    {
      cout << "Read Frame Fail!\n";
      system("pause");
      break;
    }
    memcpy(frameYUV.data, InData, iImageSize);
    memcpy(frameYUV.data + iImageSize, uvData, iImageSize / 2);

    cvtColor(frameYUV, frameBGR, CV_YUV2BGR_I420);
    cvtColor(frameBGR, frameRGB, CV_BGR2RGB);

    imshow("video", frameRGB);
    waitKey(1);

    cout << iFrameNum++ << " Frame Processed\n";

    sprintf(outName, "outFile/%d.jpg", iFrameNum);
    imwrite(outName, frameRGB);

  }

  free(InData);
  free(uvData);
  fclose(fpIn);

  return 0;
}

以上这篇YUV转为jpg图像的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Swift中属性的声明与作用
Jun 30 Python
Python 装饰器深入理解
Mar 16 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
使用Python读取大文件的方法
Feb 11 Python
Python使用Django实现博客系统完整版
Sep 29 Python
django1.11.1 models 数据库同步方法
May 30 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
python随机数分布random均匀分布实例
Nov 27 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
python中doctest库实例用法
Dec 31 Python
详解Python如何批量采集京东商品数据流程
Jan 22 Python
Pandas+Matplotlib 箱式图异常值分析示例
Dec 09 #Python
Python箱型图处理离群点的例子
Dec 09 #Python
Python实现非正太分布的异常值检测方式
Dec 09 #Python
python 实现检验33品种数据是否是正态分布
Dec 09 #Python
Python远程开发环境部署与调试过程图解
Dec 09 #Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 #Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 #Python
You might like
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
express.js中间件说明详解
2019/03/19 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
Python切换pip安装源的方法详解
2016/11/18 Python
Python实现ping指定IP的示例
2018/06/04 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
钳工实习自我鉴定
2013/09/19 职场文书
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
施工员岗位职责
2014/03/16 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
关于旅游的活动方案
2014/08/15 职场文书
爱牙日活动总结
2014/08/29 职场文书
三八节祝酒词
2015/08/11 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
Python与C++中梯度方向直方图的实现
2022/03/17 Python
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript