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 相关文章推荐
phpsir 开发 一个检测百度关键字网站排名的python 程序
Sep 17 Python
基于Python实现对PDF文件的OCR识别
Aug 05 Python
Python 多线程Threading初学教程
Aug 22 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
PyQt5每天必学之组合框
Apr 20 Python
Python常见MongoDB数据库操作实例总结
Jul 24 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
详解pycharm配置python解释器的问题
Oct 15 Python
解决Jupyter-notebook不弹出默认浏览器的问题
Mar 30 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入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
php中大括号作用介绍
2012/03/22 PHP
PHP生成器简单实例
2015/05/13 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
微信小程序 支付后台java实现实例
2017/05/09 Javascript
react redux入门示例
2018/04/19 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
python之wxPython应用实例
2014/09/28 Python
Python中多线程及程序锁浅析
2015/01/21 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
如何使用repr调试python程序
2020/02/28 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
柏林通行证:Berlin Pass
2018/04/11 全球购物
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
商务英语求职自荐信范文
2013/12/24 职场文书
医学院校毕业生自荐信范文
2014/01/01 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
2015年团支部工作总结
2015/04/03 职场文书
稽核岗位职责范本
2015/04/13 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
python scrapy简单模拟登录的代码分析
2021/07/21 Python