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中模块查找的原理与方法详解
Aug 11 Python
定制FileField中的上传文件名称实例
Aug 23 Python
Python内建函数之raw_input()与input()代码解析
Oct 26 Python
python正则中最短匹配实现代码
Jan 16 Python
python实现超市扫码仪计费
May 30 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
Python多图片合并PDF的方法
Jan 03 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
如何在python中实现随机选择
Nov 02 Python
python3中利用filter函数输出小于某个数的所有回文数实例
Nov 24 Python
python中的被动信息搜集
Apr 29 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 checkbox 取值详细说明
2010/08/19 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
Python打印输出数组中全部元素
2018/03/13 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
python-numpy-指数分布实例详解
2019/12/07 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
Django URL参数Template反向解析
2020/11/24 Python
汉森批发:Hansen Wholesale
2018/05/24 全球购物
给酒店员工的表扬信
2014/01/11 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
公益广告语集锦
2014/03/13 职场文书
八达岭长城导游词
2015/01/30 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
小学四年级班务总结该怎么写?
2019/08/16 职场文书
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技