GPUImageHistogramFilter с GPUImageFilterPipeline

Я использую GPUImage в своем приложении для фотографий, чтобы сделать некоторые параметры фильтра изображений. В приложении есть возможность добавить несколько фильтров во время захвата изображения, поэтому для обработки нескольких фильтров я использовал GPUImageFilterPipeline. Каждый эффект фильтра, который я добавил, хорошо работает на конвейере, кроме GPUImageHistogramFilter. Я знаю, что GPUImageHistogramFilter нужно больше шагов по сравнению с другими фильтрами (как упомянуто здесь). Но это не работает на конвейере. Как сделать гистограмму с помощью GPUImageFilterPipeline?

1 ответ

Решение

GPUImageHistogramFilter не работает как обычный фильтр, и вы не можете напрямую использовать его вывод. Он отправляет текстуру 3x256, содержащую гистограмму канала RGB, но вам нужен какой-то способ ее анализа для отображения. Вы не сможете установить это в конструкции GPUImageFilterPipeline.

Вместо этого вы захотите настроить конвейер фильтра вручную, следуя примеру, приведенному в примере приложения FilterShowcase (или моим действиям в ответе, который вы указали выше). Я использую генератор гистограмм для создания наложения, которое вы видите в приведенном здесь примере, и нет простого способа установить это с помощью GPUImageFilterPipeline.

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

Другие вопросы по тегам