私はopencvを使用して、Webカメラから直接ビデオをキャプチャし、それをaviファイルに保存しています。私は次のコードを使用しました:
#include "StdAfx.h"
using namespace std;
using namespace cv;
int _tmain()
{
VideoCapture src;
src.open(1);
if(!src.isOpened())
{
cout<<"could not open camera\n";
return -1;
}
else
{
cout<<"camera opened\n";
}
int ex=static_cast<int>(src.get(CV_CAP_PROP_FOURCC));
Size s(Size((int)src.get(CV_CAP_PROP_FRAME_WIDTH),(int)src.get((CV_CAP_PROP_FRAME_HEIGHT))));
VideoWriter out;
out.open("out.avi",ex,20,s);
while(1)
{
Mat im;
src>>im;
imshow("vid",im);
out<<im;
char c;
c=cvWaitKey(50);
if(c==27)
break;
}
system("pause");
}
すべてのヘッダーはstdafx.hに含まれています。しかし、実際にはサイズ0biteのaviファイルを取得しています。これを修正する方法は?表示せずにウェブカメラのビデオを録画する必要があります。
注:私はopenCVを初めて使用し、VisualStudio2010を使用しています。