Проблема OpenCv Visual C ++ 2010 Express - PullRequest
0 голосов
/ 15 июля 2011

Привет! Я пытаюсь запустить приведенный ниже код, но возникают проблемы с функцией cvCreateFileCapture.

#include "stdafx.h"
#include <iostream>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

using namespace std;


int main( int argc, char** argv ) { 
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
// CvCapture* capture = cvCaptureFromAVI( argv[1] ); // either one will work

CvCapture* capture = cvCreateFileCapture( "test.avi");
IplImage* frame;
while(1) {
    frame = cvQueryFrame( capture );
    if( !frame ) break;
    cvShowImage( "Example2", frame );
    char c = cvWaitKey(33);
    if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );

}

Изначально я получал сообщение об ошибке отсутствующего файла msvcr90d.dll. Мне пришлось скачать vs 2008 и изменить настройки конфигурации набора инструментов платформы. После того, как я сделал это, я получил ошибку ниже. Любая помощь приветствуется.

enter image description here

Ответы [ 2 ]

2 голосов
/ 15 июля 2011

Бьюсь об заклад, cvCreateFileCapture() не удается, потому что он не нашел файл.Вы просто не знаете, потому что вы не проверяете возврат функции.

Возвращает NULL, если не может загрузить видеофайл.

CvCapture* capture = cvCreateFileCapture("test.avi");
if (capture == NULL)
{
    std::cout << "!!! cvCreateFileCapture failed !!!" << std::endl;
    exit(0);
}
0 голосов
/ 15 июля 2011

Понятия не имею, что такое openCv, но если мне не изменяет память, msvcr90d.dll - это отладочная DLL для VC ++ 2008.Вы проверили конфигурацию и свойства вашего проекта, чтобы увидеть, какой режим и какие библиотеки он использует / импортирует?

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