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通过post提交数据的方法
May 06 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
如何在python中使用selenium的示例
Dec 26 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
解决使用PyCharm时无法启动控制台的问题
Jan 19 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 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
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
一些Python中的二维数组的操作方法
2015/05/02 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
python实现图片压缩代码实例
2019/08/12 Python
python进行参数传递的方法
2020/05/12 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
python数据类型强制转换实例详解
2020/06/22 Python
python 实现音频叠加的示例
2020/10/29 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
中专生职业生涯规划书范文
2014/01/10 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
品德评语大全
2014/05/05 职场文书
先进员工事迹材料
2014/12/20 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
导游词之天津古文化街
2019/11/09 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL