2013-04-02 15 views
0

Все примеры принимают изображение и превращают его во что-то другое в один кадр, но что, если я хочу создать что-то вроде размытия изображения, которое требует обратной связи? Для этого требуется комбинировать результаты для текущего видеокадра с результатом фильтра для предыдущего кадра. Как эффективно сохранить предыдущий результат кадра, чтобы я мог использовать его в следующем кадре в качестве входного?Передача результата предыдущего кадра в качестве ввода следующего кадра

enter image description here

Я попытался чтении различные примеры шейдеры включены в FilterShowCase и читать sunlakesoftware.com introduction to GPUImage. Я заметил, что GPUImage поставляется с GPUImageTextureOutput и GPUImageTextureInput, но мне нужно сделать то же самое, что и для ввода и вывода.

+0

Просто обнаружил GPUImageBuffer на https://github.com/BradLarson/GPUImage/issues/203, читать об этом сейчас – Bemmu

+0

GPUImageMotionDetector выглядит многообещающим – Bemmu

+1

Как вы нашли, то GPUImageBuffer был построен специально для этой цели. Посмотрите на фильтр нижних частот, чтобы использовать его для объединения последовательных кадров. Это может даже сделать размытие движения обратной связи, которое вы хотите. –

ответ

0

Получил это, чтобы работать. Поворачивает то, что я считал «motion blur», на самом деле является эффектом фильтра низких частот.

GPUImageLowPassFilter имеет код, который имеет дело с принятием текущего и предыдущего кадров и смешиванием их с GPUImageDissolveBlendFilter, делая именно это.

+0

Привет, вы можете показать мне свой рабочий код? Благодарю. – Yun

Смежные вопросы