YUV转为jpg图像的实现
作者:叶晚zd 发布时间:2021-07-26 09:18:29
标签:YUV,jpg图像
调用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;
}
来源:https://blog.csdn.net/u013925378/article/details/82153377
0
投稿
猜你喜欢
- 很多时候我们在使用ThinkPHP配置网站前台和网站后台的数据库连接时,往往都是分别在前台的配置文件和后台的配置文件单独都写了配置的。但是有
- 最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个
- DataList Web 服务器控件 通过使用模板显示数据源中的项。通过操作组成 DataList
- 1、读取数据文件回归分析问题所用的数据都是保存在数据文件中的,首先就要从数据文件读取数据。数据文件的格式很多,最常用的是 .csv,.xls
- 其实这里的静态页面并不是真正意义上的静态,但可以达到了静态页面的解析效率,还未经项目测试,拿来分享。代码如下:<% Cons
- 1.reshapereshape是重塑,常用的三种写法如下:numpy.arange(n).reshape(a, b) &nb
- 两个例子package main import ( "fmt" "time")func Proces
- 简介CSS Sprites并没有一个确定的中文翻译,通常被意译为“CSS图像拼合”或“CSS贴图定位”。CSS Sprites并不是一门新技
- 今天在intellij调试spark的时候感觉每次有新的一段代码,都要重新跑一遍,如果用spark-shell,感觉也不是特别方便,如果能像
- 使用字符串第二次世界大战促使了现代电子计算机的诞生,当初的想法很简单,就是用计算机来计算导弹的弹道,因此在计算机刚刚诞生的那个年代,计算机处
- 查询效率分析:子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询。在这种情况下可以考虑用联接查询来取代。如果要用子查询,那就用E
- auth模块是什么auth模块时django自带的用户认证模块开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括
- 1.ACCESS查询(query_info):select * from info where stu = name1 and age =
- 本文主要研究的是python读取jpg格式图片并显示为16进制的相关内容,具体如下。代码:>>> aaa = open(&
- 1:除非你现在已经过了不惑之年了,否则你就一定要保持年轻人特有的激情!这里的激情,包含了那种说不明白的近似于冲动的东西,或者idea。也包含
- 一、IE透明度问题在IE的高度超过某一阀值时,会产生透明度不时失效的问题,这现象比较奇怪,(会有的时候全黑,有的时候全白)你有可能无法复现。
- 在 JavaScript 中,可以用 instanceof 来判断一个对象是不是某个类或其子类的实例。比如:// 代码
- li {list-style-image: url(images/disc.gif);}li的这个样式定义是将列表项目使用图片来代替显示的小
- <base href="http://digi.tech.qq.com/images/ld/2007/1022/
- 缓存(Cache)对于创建一个高性能的网站和提升用户体验来说是非常重要的,然而对我们这种只用得起拼多多的码农而言最重要的是学会如何使用缓存。