读取yuv并转化为RGB数据在Opencv中打开显示
来源:互联网 发布:淘宝女士丝巾 编辑:程序博客网 时间:2024/05/01 05:21
/**
* Opencv中一般是读取 demo.avi 格式视频,下面程序是直接读取 demo.yuv 然后使用 Mat 保存
* 再使用 cv::cvtColor() 将每帧的 yuv 数据转化为 rgb 然后显示
*/
#include <opencv/cv.h>#include <fstream>#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace std;using namespace cv;const int width = 1280;const int height = 720;const int framesize = width * height * 3 / 2; //一副图所含的像素个数typedef struct planet{char name[framesize];double population;double g;} PLANET;int main(){/////////////////////////////////////////////////////////////// 计算视频的帧数,怎样替换成c语言形式的?PLANET pl;ifstream fin;fin.open("demo.yuv", ios_base::in|ios_base::binary);if(fin.fail()){cout << "the file is error" << endl;return -1;}fin.seekg(0, ios::end); //设置文件指针到文件流的尾部streampos ps = fin.tellg(); //指出当前的文件指针unsigned long NumberPixe = ps;cout << "file size: " << ps << endl; //输出指针的位置unsigned FrameCount = ps / framesize; //帧大小cout << "frameNuber: " << FrameCount; //输出帧数fin.close();/////////////////////////////////////////////////////////////////FILE* fileIn = fopen("demo.yuv", "rb+");unsigned char* pYuvBuf = new unsigned char[framesize]; //一帧数据大小//存储到图像namedWindow("yuv", 1);for(int i = 0; i < FrameCount; ++i){fread(pYuvBuf, framesize*sizeof(unsigned char), 1, fileIn);cv::Mat yuvImg;yuvImg.create(height*3/2, width, CV_8UC1);memcpy(yuvImg.data, pYuvBuf, framesize*sizeof(unsigned char));cv::Mat rgbImg; cv::cvtColor(yuvImg, rgbImg, CV_YUV2BGR_I420);cv::imshow("yuv", yuvImg); //只显示y分量cv::imshow("rgbImg", rgbImg);printf("第 %d 帧\n", i);int c = waitKey(30);if((char)c == 27){break;}}fclose(fileIn);cvDestroyWindow("yuv");cin.get();cin.get();return 0;}
0 0
- 读取yuv并转化为RGB数据在Opencv中打开显示
- 读取yuv并转化为RGB数据在Opencv中打开显示
- 读取yuv并转化为RGB数据在Opencv中打开显示
- 读取yuv并转化为RGB数据在Opencv中打开显示
- YUV 读取图像并转化成RGB
- 利用opencv将录制的rgb图像转化为yuv文件并保存。
- YUV RGB播放器 打开, 显示RGB数据
- opencv 读取rgb.txt 并显示出来
- python读取文本中数据并转化为DataFrame
- OpenCV笔记之一:将RGB视频转换为灰度输出并在窗口显示
- winform打开Excel读取数据并显示到datagridview中
- winform打开Excel读取数据并显示到datagridview中
- 利用Opencv读取图片RGB值并存储在txt文件中
- 利用Opencv读取图片RGB值并存储在txt文件中
- RGB 转化YUV
- C# 读取DataSet数据并显示在ListView控件中
- C#读取Dataset数据并显示在ListView控件中
- flex :读取access数据库数据 转化为xml 然后在flex页面显示绑定图片
- 20150530(Python面试)
- 15.职责链模式
- Robots机器人应用制作与分析
- PT与PX区别
- HTTP与HTTPS的区别
- 读取yuv并转化为RGB数据在Opencv中打开显示
- MySQL 中的常用函数
- Java屏幕截图
- vi命令应用
- Java作业整理
- 自定义返回按钮
- Struts2+Hibernate4+Spring3 整合登录例子
- Spring MVC "The request sent by the client was syntactically incorrect ()"解决办法
- ztree点击事件加载树