1

このコードを Opencv で作成しましたが、約 900 フレーム後に次のエラーが表示されます。

OpenCV Error: Insufficient memory (Failed to allocate 921600 bytes) in function, file ..\..\..\..\ocv\opencv\src\cxcore\cxalloc.cpp, line 52

しかし、変数を一度初期化しました。コードは次のとおりです。

int _tmain(int argc, _TCHAR* argv[])
{
     IplImage * image;
     CvCapture * capture = cvCaptureFromCAM ( 0 );
     while ( 1 ){
         image = cvCreateImage ( cvSize ( 640,480 ) , 8, 3 );
         image = cvQueryFrame ( capture );
         cvShowImage ( "test", image );
         cvWaitKey ( 10 );
     }
}
4

2 に答える 2

1

cvCreateImage使用せずに、さらに重要なことに、どこにもリリースせずに、常に新しいイメージを作成しています。

この行を削除するだけです (メモリを消費する以外には何もしません):

image = cvCreateImage ( cvSize ( 640,480 ) , 8, 3 );
于 2013-03-03T14:45:13.520 に答える
0

cvReleaseImageある時点で電話する必要があります。

于 2013-03-03T14:44:14.063 に答える