OpenCV закрыть камеру - PullRequest
       10

OpenCV закрыть камеру

0 голосов
/ 16 августа 2011

хорошо, у меня есть этот код

IplImage *frame;
CvCapture *capture = cvCaptureFromCAM(0);
frame = cvQueryFrame(capture);
cvSaveImage("sample.jpg",frame);
cvReleaseImage(&frame);

, который сохраняет изображение, но после сохранения этого изображения я хочу освободить эту камеру, чтобы она закрылась. Теперь камера остается включенной до остановки программы, я хочу включить и закрыть камеру точно после cvReleaseImage(&frame);

Я пытался

cvReleaseCapture (& захвата)

но выдает ошибку времени выполнения: the application has requested the Runtime to terminate in an unusual way и эту ошибку

Ошибка OpenCV: неверный аргумент (нераспознанный или неподдерживаемый тип массива) в неизвестной функции, файл ...... \ modules \ core \ src \ array.cpp, строка 996

Ответы [ 3 ]

3 голосов
/ 16 августа 2011

Я не совсем уверен. Но попробуйте удалить вызов cvReleaseImage.

Я помню, что указатель изображения, полученный методом cvQueryImage, всегда указывает на один и тот же адрес. поэтому я предполагаю, что эти данные изображения управляются захватом. так что освобождение сделано, когда вы отпускаете захват.

EDIT:

найдено здесь: http://opencv.jp/opencv-1.0.0_org/docs/ref/opencvref_highgui.htm

Функция cvQueryFrame захватывает кадр с камеры или видеофайла, распаковывает и возвращает его. Эта функция является просто комбинацией cvGrabFrame и cvRetrieveFrame в одном вызове. Возвращенное изображение должно не может быть выпущено или изменено пользователем.

0 голосов
/ 16 августа 2011

Я думаю, что вы ищете cvReleaseCapture . Вот код, который работал для меня:

<br> int main (void) {</p> <pre><code> IplImage *frame; CvCapture *capture = cvCaptureFromCAM(0); frame = cvQueryFrame(capture); cvSaveImage("sample.jpg",frame); cvReleaseImage(&frame); cvReleaseCapture( &capture ); return 0; }

Это довольно простой код, но он должен завершаться правильно, без каких-либо ошибок.

0 голосов
/ 16 августа 2011

пробовал cvReleaseCapture()?(30 символов.)

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