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 相关文章推荐
python解析json实例方法
Nov 19 Python
深入分析在Python模块顶层运行的代码引起的一个Bug
Jul 04 Python
Python内置函数dir详解
Apr 14 Python
python实现中文转换url编码的方法
Jun 14 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
Linux下python3.7.0安装教程
Jul 30 Python
Python装饰器基础概念与用法详解
Dec 22 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
Python字符串的常见操作实例小结
Apr 08 Python
Python实现通过解析域名获取ip地址的方法分析
May 17 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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
第十四节 命名空间 [14]
2006/10/09 PHP
PHP session有效期问题
2009/04/26 PHP
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
php class类的用法详细总结
2013/10/17 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
wxPython实现画图板
2020/08/27 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
laravel使用redis队列实例讲解
2021/03/23 PHP
失业者真诚求职信范文
2013/12/25 职场文书
助人为乐表扬信范文
2014/01/14 职场文书
总经理岗位职责描述
2014/02/08 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers