我一直试图从凸轮捕捉视频,并将其写入到一个AVI文件。 我使用Qt 4.8.2与MSVC 2010(86)在Windows 7上我有2个版本的代码:一个用CV ::垫,另一个使用的IplImage *。 然而,只有IplImage结构*版本工作。 下面是使用CV我的代码::垫:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main() {
VideoCapture* capture2 = new VideoCapture( CV_CAP_DSHOW );
Size size2 = Size(640,480);
int codec = CV_FOURCC('M', 'J', 'P', 'G');
VideoWriter* writer2 = new VideoWriter("video.avi",codec,15,size2);
int a = 100;
Mat frame2;
while ( a > 0 ) {
capture2->read(frame2);
writer2->write(frame2);
a--;
}
writer2->release();
capture2->release();
return 0;
}
下面是使用的IplImage *的代码:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main() {
CvCapture* capture = cvCaptureFromCAM( CV_CAP_DSHOW );
CvSize size = cvSize(640,480);
int codec = CV_FOURCC('M', 'J', 'P', 'G');
CvVideoWriter* writer = cvCreateVideoWriter("video.avi",codec,15,size);
int a = 100;
while ( a > 0 ) {
IplImage* frame = cvQueryFrame( capture );
cvWriteToAVI(writer,frame);
a--;
}
cvReleaseVideoWriter(&writer);
cvReleaseCapture( &capture );
return 0;
}
它基本上是相同的,或至少它看起来一样的东西给我。 它读取100帧,并应其写入“video.avi”。 它编译和运行没有出错,但CV ::垫版本不写什么,而*的IplImage版本完美的作品。
是否有人有什么回事任何想法?