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(Django)项目与Apache的管理交互的方法
May 16 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
python使用递归的方式建立二叉树
Jul 03 Python
pytorch 自定义参数不更新方式
Jan 06 Python
Python+Appium实现自动化测试的使用步骤
Mar 24 Python
Pycharm如何导入python文件及解决报错问题
May 10 Python
Python中如何引入第三方模块
May 27 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
PHP session 会话处理函数
2016/06/06 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
python执行子进程实现进程间通信的方法
2015/06/02 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
bpython 功能强大的Python shell
2016/02/16 Python
django框架模板语言使用方法详解
2019/07/18 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
代理商会议邀请函
2014/01/27 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
2014年项目工作总结
2014/11/24 职场文书
2016年国培研修日志
2015/11/13 职场文书
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python