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比较两个图片相似度的方法
Mar 13 Python
在Python程序中实现分布式进程的教程
Apr 28 Python
深入理解Django的中间件middleware
Mar 14 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 Python
python实现DEM数据的阴影生成的方法
Jul 23 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
python ubplot使用方法解析
Jan 10 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
python 双循环遍历list 变量判断代码
May 04 Python
python爬虫爬取网页数据并解析数据
Sep 18 Python
10个示例带你掌握python中的元组
Nov 23 Python
详解Python魔法方法之描述符类
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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
值得分享的Bootstrap Table使用教程
2016/11/23 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
python实现定时播放mp3
2015/03/29 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
python基础教程之匿名函数lambda
2017/01/17 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
董事长秘书岗位职责
2013/11/29 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
感恩节活动策划方案
2014/05/16 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
贫困证明怎么写
2015/06/16 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL