Видеозахват: кадр всегда пуст - opencv

0

Я работаю с openCV версии 2.4.9 и Mac OSX. Я написал этот код для загрузки и отображения видео на моем рабочем столе. Но он никогда не работает. Я всегда получаю вывод как "frame empty". Таким образом, он не жалуется на чтение видео с помощью VideoCapture.It не способен захватывать любые кадры, и, таким образом, "кадр" всегда ПУСТОЙ. Любая идея, что может быть проблемой? Примечание. Я попытался оба способа захватить фрейм - прокомментировал как try 1 и try2.

int main(int argc, const char * argv[])
{
    Mat frame;
    VideoCapture capture_ir("/Users/shreyatandon/Desktop/resize_ir.avi");


    if ( !capture_ir.isOpened() )  // if not success, exit program
    {
        cout << "Cannot open the video file" << endl;
        return -1;
    }

    for (;;){
       // capture_ir.read(frame); //try1
          capture_ir>>frame;       //try2
        if(frame.empty()){
            std::cerr<<"frame is empty"<<std::endl;
            break;
        }
        imshow("", frame);

        waitKey(10);

            break;
    }

    return 0;
}
  • 0
    Я знаю, что в Windows ваши пути к файлам не будут работать, они должны быть \ \ вместо /. Я не знаю, так ли это для Mac
  • 0
    Если путь был неправильным, я получу вывод «Не удается открыть файл». Но все равно спасибо! Это / для Mac.
Теги:
opencv
macos
video

1 ответ

0
Лучший ответ

Просто заставил его работать.

Mat current_frame;
VideoCapture video("video.avi");
while(true)
{
    video.read(current_frame);
    imshow("Image",current_frame);
}

Если у вас проблемы с использованием avi-формата, посмотрите на свои ссылки на библиотеки ffmpeg и его зависимости. Я попытался установить его с нуля с помощью доморощенного, и он работает без проблем. ура

Ещё вопросы

Сообщество Overcoder
Наверх
Меню