当我试图编译我的代码时,我有上述错误。这是一个非常非常简单的函数,我不知道为什么会有这个问题。最糟糕的是,我甚至找不到array.cpp在opencv文件夹中的位置,所以我看不出出了什么问题。有人知道吗?请帮助!
int imgreg_capture_image()
{
/*********************Try capturing an image from the camera first*************************************/
CvCapture* imgregCapture = cvCaptureFromCAM( CV_CAP_ANY );
if ( !imgregCapture ) {
fprintf( stderr, "ERROR: capture is NULL n" );
exit(-1);
}
// Get one frame
IplImage* frame = 0;
frame = cvQueryFrame(imgregCapture);
if ( !frame ) {
fprintf( stderr, "ERROR: frame is null...n" );
return -1;
}
//save the image into a file
cvSaveImage( CAPTURE_FILE, frame );
// Release the capture device housekeeping
cvReleaseCapture(&imgregCapture);
cvReleaseImage(&frame);
return 0;
/***************Finish Try capturing an image from the camera first*************************************/
}
文档中声明cvQueryFrame
返回的图像不必发布。在这种情况下,删除
cvReleaseImage(&frame);
frame
的de/分配由捕获设备内部管理。
希望有帮助!
编辑:如果您希望进一步处理您的图像,请使用cvCopy(frame, yourManagedImage);
,并使用yourManagedImage
而不是原始的frame
。