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编码爬坑指南(必看)
Jun 10 Python
Python编程深度学习计算库之numpy
Dec 28 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
python实现实时视频流播放代码实例
Jan 11 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
python实现程序重启和系统重启方式
Apr 16 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
python模块内置属性概念及实例
Feb 18 Python
Python xlwings插入Excel图片的实现方法
Feb 26 Python
python源码剖析之PyObject详解
May 18 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解析字符串里所有URL地址的方法
2015/04/03 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python学习之面向对象【入门初级篇】
2017/01/21 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
python实现弹跳小球
2019/05/13 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
医学院学生的自我评价分享
2013/11/19 职场文书
求职信模版
2013/11/30 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
教室布置标语
2014/06/26 职场文书
社区好人好事材料
2014/12/26 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
nginx设置资源请求目录的方式详解
2022/05/30 Servers
Python加密与解密模块hashlib与hmac
2022/06/05 Python