Пример проекта iOS с использованием CIFilters для обработки видео?

Реализация фильтров Core Image для iOS включает категорию фильтров CICategoryVideo, которые предположительно могут использоваться для обработки видеопотока в реальном времени. Это означает, что существует рабочий процесс, достаточно быстрый, чтобы взять кадр видео, применить к нему один или несколько фильтров, а затем передать полученный кадр для отображения / сохранения.

Кто-нибудь знает образец проекта, иллюстрирующий, как это делается? Все, что я сделал до сих пор с CIFilters, - это преобразовал UIImage в CIImage, обработал его с помощью CIFilter, а затем преобразовал обратно в UIImage для отображения.

Я предполагаю, что для использования фильтра CI в потоке обработки видео вы должны использовать пиксельные буферы Core Video, сопоставить их с CIImages, обработать их, а затем отобразить результаты обратно в буфер пикселей. Я проделал этот тип обработки с помощью OpenGL и даже преобразовал кадры видео в CIImages для обнаружения лиц в видеопотоке, но не знаю, как вернуть результат CIFilter обратно в pixelBuffer достаточно быстро, чтобы не отставать от частота кадров видео.


person Duncan C    schedule 26.03.2014    source источник
comment
Я бы предложил использовать GPUImage вместо CIFilters, если вам нужна производительность в реальном времени. По моему опыту, довольно легко переключиться с одного на другой.   -  person Jack    schedule 26.03.2014
comment
Я выполнял обработку изображений на основе OpenGL, например, GPUImage. Я пытаюсь узнать о фильтрах CIFilters и их возможностях.   -  person Duncan C    schedule 26.03.2014
comment
В этом случае вам будет очень не хватать производительности;). Официальный способ вернуть CIImage в pixelBuffer - выполнить рендеринг с использованием CIContext. Я не уверен, есть ли другой метод, обеспечивающий лучшую производительность.   -  person Jack    schedule 26.03.2014


Ответы (1)


Этот проект делает именно то, что вы описываете, используя CICategoryVideo:

https://developer.apple.com/library/content/samplecode/CIFunHouse/Introduction/Intro.html

В проекте CIFunHouse показано, как применять встроенные и настраиваемые фильтры CIFilter Core Image к фотографиям и видео. В приложении представлены контроллеры представлений для добавления источников фото и видео, выбора фильтров CIFilters из списка и внесения изменений в параметры фильтра в реальном времени. Проект также содержит код для настраиваемых подклассов CIFilter для таких эффектов, как обнаружение границ Собеля, пленка в старом стиле и имитация глубины резкости. Код также демонстрирует, как сохранить отфильтрованный видеопоток в ALAssetsLibrary, одновременно просматривая видео на дисплее.

Извините, ответ пришел с опозданием на 3 года.

person alfonsodev    schedule 27.05.2017