opencv学习笔记(九)捕获摄像头的视频并保存成avi格式
2016-12-27 19:31
513 查看
这个程序引用自下面的博客,但是运行之后我发现视频保存之后,要利用前面提到的opencv播放视频程序播放,不能用普通播放器播放——而且用前面的opencv程序播放时,图像是倒置的,需要我们在程序里面改一下。在while(1)里面加上一句
cvFlip(frame, NULL, 0 );//翻转图像
http://blog.csdn.net/augusdi/article/details/8868882
#include "cv.h"
#include "highgui.h"
#include "iostream"
using namespace std;
int main(int argc,
char **argv[])
{
CvCapture *cap = cvCreateCameraCapture(0);//初始化相机捕获的指针
if (!cap)
{
cout<<"create camera capture error..."<<endl;
system("pause");
exit(-1);
}
IplImage *tempImg = cvQueryFrame(cap);
double fps = 20;
CvSize size = cvSize(
(int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT)
);
CvVideoWriter *writer = cvCreateVideoWriter("test.avi", CV_FOURCC('X','V','I','D'),
fps, size);
IplImage *img = cvCreateImage(size, 8, 3);
while((tempImg=cvQueryFrame(cap)) != NULL)
{
cvCopy(tempImg, img);
if (img->origin == IPL_ORIGIN_TL)
{
cvFlip(img, img);
}
cvWriteFrame(writer, img);
}
cvReleaseImage(&img);
cvReleaseCapture(&cap);
cvReleaseVideoWriter(&writer);
system("pause");
return 0;
}
IplImage* cvQueryFrame( CvCapture* capture );
capture
视频获取结构。
函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。
void cvReleaseCapture(CvCapture** capture);
cvFlip(frame, NULL, 0 );//翻转图像
http://blog.csdn.net/augusdi/article/details/8868882
#include "highgui.h"
#include "iostream"
using namespace std;
int main(int argc,
char **argv[])
{
CvCapture *cap = cvCreateCameraCapture(0);//初始化相机捕获的指针
if (!cap)
{
cout<<"create camera capture error..."<<endl;
system("pause");
exit(-1);
}
IplImage *tempImg = cvQueryFrame(cap);
double fps = 20;
CvSize size = cvSize(
(int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT)
);
CvVideoWriter *writer = cvCreateVideoWriter("test.avi", CV_FOURCC('X','V','I','D'),
fps, size);
IplImage *img = cvCreateImage(size, 8, 3);
while((tempImg=cvQueryFrame(cap)) != NULL)
{
cvCopy(tempImg, img);
if (img->origin == IPL_ORIGIN_TL)
{
cvFlip(img, img);
}
cvWriteFrame(writer, img);
}
cvReleaseImage(&img);
cvReleaseCapture(&cap);
cvReleaseVideoWriter(&writer);
system("pause");
return 0;
}
9.1 cvQueryFrame()
从摄像头或者文件中抓取并返回一帧IplImage* cvQueryFrame( CvCapture* capture );
capture
视频获取结构。
函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。
9.2 cvReleaseCapture()
CvCapture结构使用结束后,可以调用cvReleaseCapture()来释放CvCapture结构。与OpenCV中大部分释放函数类似,这个函数读入一个指向capture结构的指针。void cvReleaseCapture(CvCapture** capture);
相关文章推荐
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- OpenCV学习笔记 利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面 .
- opencv视频学习第四课(opencv读视频和摄像头)笔记整理
- Pythone OpenCV学习笔记之:视频文件读取与保存
- OpenCV学习笔记(1):获取摄像头并显示摄像头视频
- 【OpenCV学习笔记】2:开启摄像头和对捕获到的图像的处理
- OpenCV学习笔记(12)OpenCV调用Matlab函数进行保存视频的尝试
- OpenCV学习 利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- OpenCV学习笔记(02) :OpenCV拍摄视频并保存
- opencv 摄像头捕获的图像保存为avi视频 代码解析
- OpenCV学习笔记(4)视频文件的读取与保存(2010-01-23 更新)
- opencv 、directshow捕获摄像头,实时播放,编码,保存视频,保存单帧
- OpenCV学习笔记04--图片和视频的保存
- python opencv入门(学习笔记no.3)-从摄像头读取视频并显示
- OpenCV学习笔记_调用摄像头录制视频(无声音)
- OpenCV学习笔记(4)视频文件的读取与保存
- opencv学习笔记--将多帧图片保存为视频
- OpenCV学习笔记之八(保存视频,录制视频,cvLoadImage的路径)
- OpenCv学习笔记——OpenCV捕获视频