OpenCV как фреймсервер

Я пытаюсь сделать произвольный доступ к фильму AVI. Мне нужно пропускать кадры и перемещаться вперед и назад к точным позициям в фильме. Когда я это делаю, я получаю неприятный дерганый фильм, который перемещает кадры вперед и назад. Можно ли использовать OpenCV в качестве сервера кадров?

cvSetCaptureProperty( capture, CV_CAP_PROP_POS_FRAMES, frameNumber );
image= cvQueryFrame( capture );

person ochensati    schedule 31.03.2012    source источник
comment
возможный дубликат OpenCV Seek Function/Rewind   -  person karlphillip    schedule 01.04.2012
comment
Я использую для этого тот же метод, но проблема в том, что он не зависит от кадра, поэтому он дрожит.   -  person ochensati    schedule 06.04.2012


Ответы (1)


Если я понял ваш вопрос, и если вы хотите сохранить кадры, вы можете использовать vector <IplImage*> frames, а затем отодвигать каждый кадр видео в файл vector. Затем, когда вы захотите, вы сможете получить доступ к своим кадрам без cvQueryFrame() и можете показывать кадры, как фильм, с cvShowImage().

person Milad R    schedule 31.03.2012
comment
хм, это сработает, но фильмы довольно большие, поэтому я думаю, что у меня закончится память, прежде чем я смогу сохранить столько кадров. - person ochensati; 01.04.2012