|
OpenCV메뉴얼을 보면 cvRetrieveFrame함수의 Returned Image는 User가 release 또는 modify하지 말라고 되어 있습니다. 아래에 cvReleaseImage( &image );를 지우시면 문제 없을거 같네요...
유종현 님이 쓰신 글 :
: 제가 일단 아직 초보라 캠으로 화면받고 캡처하는 부분을 하고있는데요
: 띄운 윈도우창을 버튼으로 닫으려고하면 오류가나내요 순서바껴도 화면이꺼지고 릴리즈할때 안되는거 같은데요
: 이게 왜이런지
: 소스
: IplImage *image = 0;
: IplImage *object = 0;
: CvCapture *Capture = cvCaptureFromCAM(0);
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
: : TForm(Owner)
: {
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: cvNamedWindow("WebCam",0);
: cvResizeWindow( "WebCam", 320, 240 );
: while(1)
: {
: cvGrabFrame(Capture);
: image = cvRetrieveFrame(Capture);
: cvShowImage("WebCam", image);
: if( cvWaitKey(10) >= 0 )
: break;
:
: }
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
: cvNamedWindow("Captur",0);
: cvResizeWindow( "Captur", 320, 240 );
: while(1)
: {
: cvSaveImage("Captur.jpg", image);
: object = cvLoadImage("Captur.jpg", 1);
: cvShowImage("Captur", object);
: if( cvWaitKey(10) >= 0 )
: break;
:
: }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button3Click(TObject *Sender)
: {
: cvReleaseImage( &image );
: cvReleaseImage( &object );
: cvReleaseCapture( &Capture );
: cvDestroyWindow( "WebCam" );
: cvDestroyWindow( "Captur" );
: Close();
: }
|