Я работаю с 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;
}
Просто заставил его работать.
Mat current_frame;
VideoCapture video("video.avi");
while(true)
{
video.read(current_frame);
imshow("Image",current_frame);
}
Если у вас проблемы с использованием avi-формата, посмотрите на свои ссылки на библиотеки ffmpeg и его зависимости. Я попытался установить его с нуля с помощью доморощенного, и он работает без проблем. ура