Автоматические изображения улучшения

Автоматическая функция улучшения Базового Изображения анализирует изображение для своей гистограммы, содержания области поверхности и свойств метаданных. Это тогда возвращает массив CIFilter объекты, входные параметры которых уже устанавливаются на значения, которые улучшат проанализированное изображение.

Автоматическое улучшение доступно в iOS v5.0 и позже и в OS X v10.8 и позже.

Автоматические фильтры улучшения

Таблица 3-1 показывает использование Изображения Ядра фильтров для того, чтобы автоматически улучшение изображения. Эти фильтры средство некоторые наиболее распространенные проблемы найдены в фотографиях.

Табличные 3-1  Фильтры, что Базовое использование Изображения для улучшения изображения

Фильтр

Цель

CIRedEyeCorrection

Восстанавливает красный/янтарный/белый глаз вследствие флэш-памяти камеры

CIFaceBalance

Корректирует цвет поверхности для предоставления приятных скинтонов

CIVibrance

Увеличивает насыщенность изображения, не искажая скинтоны

CIToneCurve

Корректирует контрастность изображений

CIHighlightShadowAdjust

Корректирует теневые подробные данные

Используя автоматические фильтры улучшения

Автоматическое улучшение API имеет только два метода: autoAdjustmentFilters и autoAdjustmentFiltersWithOptions:. В большинстве случаев Вы захотите использовать метод, обеспечивающий словарь опций.

Можно установить эти опции:

autoAdjustmentFiltersWithOptions: метод возвращает массив фильтров опций, которые Вы тогда захотите объединить в цепочку вместе и примениться к проанализированному изображению, как показано в Перечислении 3-1. Код сначала создает словарь опций. Это тогда получает ориентацию изображения и наборов что как значение для ключа CIDetectorImageOrientation.

Перечисление 3-1  , Получающее автоматические фильтры улучшения и применяющее их к изображению

NSDictionary *options = @{ CIDetectorImageOrientation :
                 [[image properties] valueForKey:kCGImagePropertyOrientation] };
NSArray *adjustments = [myImage autoAdjustmentFiltersWithOptions:options];
for (CIFilter *filter in adjustments) {
     [filter setValue:myImage forKey:kCIInputImageKey];
     myImage = filter.outputImage;
}

Вспомните, что входные значения параметров уже установлены Базовым Изображением привести к лучшему результату.

Вы не должны применять автоматические фильтры корректировки сразу же. Можно сохранить имена фильтра и значения параметров для позже. Сохранение их позволяет Вашему приложению выполнить улучшения позже без стоимости анализа изображения снова.