gpt4 book ai didi

c++ - 如何从 AVI 视频中提取帧

转载 作者:太空宇宙 更新时间:2023-11-04 14:10:54 25 4
gpt4 key购买 nike

嘿,到目前为止,我管理 OpenCV 来播放 video.avi,但是我现在应该做什么来提取帧...?

下面是我到目前为止编写的用于播放视频的代码:

#include<opencv\cv.h>
#include<opencv\highgui.h>
#include<opencv\ml.h>
#include<opencv\cxcore.h>



int main( int argc, char** argv ) {
cvNamedWindow( "DisplayVideo", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( argv[1] );
IplImage* frame;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "DisplayVideo", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow("DisplayVideo" );
}

最佳答案

frame 您正在提取的帧。如果您想将其转换为 cv::Mat,您可以通过使用该 IplImage 创建一个垫子来实现:

Mat myImage(IplImage);

There is a nice tutorial on it here .

但是,您使用的是旧方法。最新版本的 OpenCV 具有最新的相机捕获功能,您应该这样做:

#include "cv.h"
#include "highgui.h"

using namespace cv;

int main()
{
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;

namedWindow("Output",1);

while(true)
{
Mat frame;
cap >> frame; // get a new frame from camera


//Do your processing here
...

//Show the image

imshow("Output", frame);
if(waitKey(30) >= 0) break;
}

// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}

关于c++ - 如何从 AVI 视频中提取帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14403909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com