利用opencv将录制的rgb图像转化为yuv文件并保存。
2014-09-25 22:02
766 查看
#include <iostream> #include <opencv2/opencv.hpp> #include <cstdlib> using namespace std; using namespace cv; int main() { Mat frame, yuv; VideoCapture capture; int w = 320; int h = 240; capture.open(0); capture.set(CV_CAP_PROP_FRAME_WIDTH,w); capture.set(CV_CAP_PROP_FRAME_HEIGHT,h); /* VideoCapture capture; int w = 1280; int h = 720; string filename = "./xx.mp4"; capture.open(filename); */ if(!capture.isOpened()) { cerr << "No camera or video input!\n"; return -1; } int bufLen = w*h*3/2; unsigned char* pYuvBuf = new unsigned char[bufLen]; FILE* pFileOut = fopen("xx.yuv", "wb"); if (!pFileOut) { printf("pFileOut open error \n"); system("pause"); exit(-1); } int cnt = 0; while(true) { capture >> frame; if(frame.empty()) continue; imshow("origin",frame); cvtColor(frame,yuv,CV_RGB2YUV_I420); imshow("yuv",yuv); memcpy(pYuvBuf, yuv.data, bufLen*sizeof(unsigned char)); fwrite(pYuvBuf, bufLen*sizeof(unsigned char), 1, pFileOut); if(cvWaitKey(10) == 'q') break; } fclose(pFileOut); delete[] pYuvBuf; system("pause"); return 0; }
用yuvviewer可以查看是否最后保存的yuv文件正确。
相关文章推荐
- 利用OpenCV进行【视频的读取】与【保存视频文件或者图像】源码!~
- 利用OpenCV和C++实现由RGB图像转化为灰度图,再将灰度图转化为二值图的程序
- 利用OpenCV的imread将RGB图像转化为灰度图像!
- 利用OpenCV提取图像的边缘,并将检测的边缘重新保存在一个新的文件中
- OpenCV应用笔记】(彩色/灰度)图像像素值读取并保存到txt文件
- 利用opencv进行图像文件读入和显示
- 通过FFmpeg将多媒体文件解码后保存成Bmp图像(YUV420 RGB32)
- Qt使用opencv调用摄像头录制视频并保存文件
- Python中对文件夹下的特定格式图像全部读取并转化为数组保存(也可转化为txt文件)
- 通过FFmpeg将多媒体文件解码后保存成Bmp图像(YUV420 RGB32)
- 利用opengl将3ds文件导入场景并显示,然后保存这个场景为bmp格式图像,其结果与显示不同,问题出在哪儿了
- 利用opencv的detector检测并保存截取的人脸图像
- OpenCV 读RGB图像然后转换成灰度并保存成灰度图
- opencv之Rgb图像转化到HSV、Lab空间,对各通道的操作
- OpenCV读取RGB图像像素值,并保存到txt中
- 利用OpenCV读入,显示并保存图像
- 利用Opencv读取图片RGB值并存储在txt文件中
- 利用ffmpeg将yuv转化成png;用ffplay播放yuv文件
- YUV 读取图像并转化成RGB
- 读取yuv并转化为RGB数据在Opencv中打开显示