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实现通过代理服务器访问远程url的方法
Apr 29 Python
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
Python复制文件操作实例详解
Nov 10 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
一百多行python代码实现抢票助手
Sep 25 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
Python 实现训练集、测试集随机划分
Jan 08 Python
python3访问字典里的值实例方法
Nov 18 Python
Pycharm plot独立窗口显示的操作
Dec 11 Python
Django权限控制的使用
Jan 07 Python
正确的理解和使用Django信号(Signals)
Apr 14 Python
Python基础之数据结构详解
Apr 28 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生成静态页
2006/11/25 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
Three.js基础学习教程
2017/11/16 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
使用Python进行目录的对比方法
2018/11/01 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
python 爬虫请求模块requests详解
2020/12/04 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
材料化学应届生求职信
2013/10/09 职场文书
酒吧副总经理岗位职责
2013/12/10 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
学习保证书
2015/01/17 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书