Технический форум по робототехнике.
enemis » 11 окт 2011, 00:01
Доброго времени суток. Требуется помощь, подсказка, совет. Пишу магистерскую работу на тему распознавание видео. Есть необходимость использования не формата, avi а формат mp4 в opencv (перебор кадров нахождение необходимого и т.д.) Те одна из главных задач разбить видео ряд на сцены и захватить последний кадр каждой сцены и сохранить на диске и все это в mp4. Можно ли как либо использовать mp4 в opencv? Хотелось бы использовать mp4 таким образом:
while(1){
frame = cvQueryFrame( film);
if( !frame ) {
break;
}
SomeFunction(frame);
}
Angel71 » 11 окт 2011, 02:15
про avi и mp4 немного непонятно. это всего-лишь немного отличающиеся форматы медиаконтейнера.
enemis » 12 окт 2011, 02:52
Вот пример кода с обучения.
#include "stdafx.h"
#include "highgui.h"
int _tmain(int argc, _TCHAR* argv[])
{
cvNamedWindow("Avi", CV_WINDOW_AUTOSIZE);
CvCapture* capture = cvCreateFileCapture("d:\\daesh.molodezh.(109).www.kvnforall.info.avi");
IplImage* frame;
while(1)
{
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "Avi", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Avi" );
}
Вот так работает воспроизведение видео...Выводит следующий кадр с интервалом 33
А теперь если поменять вот эту строчку:
CvCapture* capture = cvCreateFileCapture("d:\\funny.mp4");
Работать не будет так как opencv не понимает формата mp4.
Как заставить его считывать формат mp4.
Angel71 » 12 окт 2011, 12:54
mp4 контейнер opencv раньше не поддерживал, как сейчас хз. в общем, если дело именно в формате контейнера, можно его преобразовать, с перекодированием или без. или декодировать (vlclib или ещё чем) файл и подсовывать opencv фреймы.
enemis » 14 окт 2011, 21:23
VClib к сожалению qt-шная мне не подходит. Может подскажете помимо, ffmpeg, vlclib есть ли какие нибудь библиотеки позволяющие захватить кадр с видео в формате mp4?
Angel71 » 15 окт 2011, 02:30
библиотека, как библиотека. подключаете к проекту и используете. какая разница, qt, vs c++, c# или что другое?