这是显示AVI视频的代码段,它可以正常运行。
int main( int argc, char** argv ) {
// cvNamedWindow( “Example2”, CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( "video.avi" );
IplImage* frame;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "Example2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );
return 0;
}
然而,当我从第二行删除注释//时,它不起作用。我得到的错误是:
Invoking: GCC C Compiler
gcc -I/usr/include/opencv -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" "../main.c"
../main.c: In function ‘main’:
../main.c:5:5: error: stray ‘\342’ in program
../main.c:5:5: error: stray ‘\200’ in program
../main.c:5:5: error: stray ‘\234’ in program
../main.c:5:5: error: stray ‘\342’ in program
../main.c:5:5: error: stray ‘\200’ in program
../main.c:5:5: error: stray ‘\235’ in program
../main.c:5:23: error: ‘Example2’ undeclared (first use in this function)
../main.c:5:23: note: each undeclared identifier is reported only once for each function it appears in
make: *** [main.o] Error 1
'Example2'如何未声明?是不是cvNamedwindow应该做那个工作?
答案 0 :(得分:1)
cvNamedWindow( “Example2”, CV_WINDOW_AUTOSIZE );
这些是一些非常有趣的引用。尝试使用标准引号替换它们:"
并重新编译。