Почему я не могу открыть avi-видео в openCV?

Я только что написал простой пример чтения видео с openCV2.3.1, но мне кажется, что я все равно не могу открыть avi-видео: (

VideoCapture capture("guitarplaying.avi");
if(!capture.isOpened()){
    std::cout<<"cannot read video!\n";
    return -1;
}
Mat frame;
namedWindow("frame");

double rate = capture.get(CV_CAP_PROP_FPS);
int delay = 1000/rate;

while(true)
{
    if(!capture.read(frame)){
        break;
    }
    imshow("frame",frame);

    if(waitKey(delay)>=0)
        break;
}

capture.release();

Я установил точку останова в std :: cout << "не могу читать видео! \ N" и обнаружил, что он останавливается здесь каждый раз. Так почему же видео avi не открывается? Спасибо!

21
задан Amaury Medeiros 29 December 2015 в 18:58
поделиться

2 ответа

В OpenCV 2.4.4: есть только opencv_ffmpeg244.dll (релиз dll), а не opencv_ffmpeg244d.dll (отладочная dll)

Так что попробуйте в режиме компиляции релиза!

1
ответ дан 29 November 2019 в 06:36
поделиться

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

Если вы обнаружите, что абсолютные пути работают, а относительные пути не работают, еще одна вещь, которую нужно проверить, - убедиться, что рабочий каталог установлен правильно.

В Visual Studio это Свойства проекта (Свойства конфигурации) -> Отладка -> Рабочий каталог. Я обнаружил, что мой установлен в «$ (ProjectDir)» по умолчанию, когда я действительно хотел «$ (OutDir)».

0
ответ дан 29 November 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: