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 17 Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 Python
解决python3运行selenium下HTMLTestRunner报错的问题
Dec 27 Python
Python中format()格式输出全解
Apr 12 Python
python for和else语句趣谈
Jul 02 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
Python实现代码块儿折叠
Apr 15 Python
150行python代码实现贪吃蛇游戏
Apr 24 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 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
截获网站title标签之家内容的例子
2006/10/09 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
PHP的全局错误处理详解
2016/04/25 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
Javascript MD4
2006/12/20 Javascript
javascript 禁止复制网页
2009/06/11 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
python网络编程之文件下载实例分析
2015/05/20 Python
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
Django中间件基础用法详解
2019/07/18 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
python列表的逆序遍历实现
2020/04/20 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
奖学金自我鉴定范文
2013/10/03 职场文书
医学检验专业个人求职信范文
2013/12/04 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript