OpenCV 2.2: неверный аргумент в неизвестной функции, файл .. \ .. \ .. \ .. \ ocv \ opencv \ modules \ core \ src \ array.cpp - PullRequest
0 голосов
/ 05 июля 2011

У меня выше ошибка, когда я пытаюсь скомпилировать мой код.Это очень очень очень простая функция, и я не могу понять, почему у меня проблема.Хуже всего то, что я даже не могу найти, где 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*************************************/
}

1 Ответ

1 голос
/ 05 июля 2011

В документации указано , что изображения, возвращаемые cvQueryFrame, освобождать не нужно.В вашем случае удалите

cvReleaseImage(&frame);

Удаление / выделение frame управляется внутренним устройством захвата.

Надеюсь, это поможет!

РЕДАКТИРОВАТЬ: Если вы хотите продолжить обработку вашего изображения, используйте cvCopy(frame, yourManagedImage); и работать с yourManagedImage вместо оригинального frame.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...