我正在使用 opencv 来检测眨眼。我能够使用从相机捕获的流来运行我的项目,一切都很好。我试图在 *.avi 文件的数据库上测试我的算法,但我无法打开其中任何一个。我检查了这些的编解码器版本并下载了正确的编解码器,但它仍然无法正常工作。我决定尝试至少尝试加载剪辑,使用我在互联网某处找到的这段代码:
int main( int argc, char** argv ){
int key = 0;
// Initialize camera and OpenCV image
//CvCapture* capture = cvCaptureFromCAM( 0 );
CvCapture* capture = cvCaptureFromAVI( "file.avi" );
IplImage* frame = cvQueryFrame( capture );
// Check
if ( !capture )
{
fprintf( stderr, "Cannot open AVI!\n" );
return 1;
}
// Get the fps, needed to set the delay
int fps = ( int )cvGetCaptureProperty( capture, CV_CAP_PROP_FPS );
// Create a window to display the video
cvNamedWindow( "video", CV_WINDOW_AUTOSIZE );
while( key != 'x' )
{
// get the image frame
frame = cvQueryFrame( capture );
// exit if unsuccessful
if( !frame ) break;
// display current frame
cvShowImage( "video", frame );
// exit if user presses 'x'
key = cvWaitKey( 1000 / fps );
}
// Tidy up
cvDestroyWindow( "video" );
cvReleaseCapture( &capture );
return 0;
}
但它仍然没有改变任何东西,捕获仍然是 NULL。任何想法我现在可以做什么?提前致谢!
E: 我在 x64 windows 上使用 opencv 2.4.6