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列表去重的二种方法
Feb 14 Python
Python编写屏幕截图程序方法
Feb 18 Python
python numpy函数中的linspace创建等差数列详解
Oct 13 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
详解Python发送email的三种方式
Oct 18 Python
用Python逐行分析文件方法
Jan 28 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
Django自带的用户验证系统实现
Dec 18 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 Python
python基于turtle绘制几何图形
Jun 15 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利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
php中文验证码实现示例分享
2014/01/12 PHP
PHP静态成员变量
2017/02/14 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
详解AngularJS 模块化
2017/06/14 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
[57:59]EG vs Secret 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
Python列表解析操作实例总结
2020/02/26 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
SQL SERVER面试资料
2013/03/30 面试题
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
《大自然的语言》教学反思
2014/04/08 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
科技之星事迹材料
2014/06/02 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书