#c #macos #opencv #video
#c #macos #opencv #Видео
Вопрос:
Я работаю с OpenCV версии 2.4.9 и на Mac OSX. Я написал этот код для загрузки и отображения видео на моем рабочем столе. Но, похоже, это никогда не работает. Я всегда получаю вывод как «пустой кадр». Таким образом, он не жалуется на чтение видео с помощью VideoCapture.Он НЕ может захватывать какие-либо кадры, и, следовательно, «кадр» всегда ПУСТ. Есть идеи, в чем может быть проблема? Примечание: я пробовал оба способа захвата кадра — прокомментировал как попытку 1 и попытку 2.
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;
}
Комментарии:
1. Я знаю, что в Windows ваши пути к файлам не будут работать, они должны быть \ вместо / . Я не знаю, так ли это для Mac
2. Если путь был неправильным, он выдал бы мне вывод как «Не удается открыть файл». Но все равно спасибо! Это / для mac .
Ответ №1:
Просто заставил это работать.
Mat current_frame;
VideoCapture video("video.avi");
while(true)
{
video.read(current_frame);
imshow("Image",current_frame);
}
Если у вас по-прежнему возникают проблемы с использованием формата avi, посмотрите ваши ссылки на библиотеки ffmpeg и ит-зависимости. Я попытался установить его с нуля, используя homebrew, и он работает без проблем. Приветствия