示例代碼下載
自動(dòng)增強(qiáng)圖像
Core Image的自動(dòng)增強(qiáng)功能可分析圖像的直方圖逢渔,面部區(qū)域內(nèi)容和元數(shù)據(jù)屬性肋坚。然后它返回一個(gè)CIFilter對(duì)象數(shù)組,其輸入?yún)?shù)已經(jīng)設(shè)置為可以改善分析圖像的值肃廓。
iOS v5.0及更高版本以及OS X v10.8及更高版本中提供了自動(dòng)增強(qiáng)功能智厌。
自動(dòng)增強(qiáng)濾鏡
表3-1顯示了Core Image用于自動(dòng)增強(qiáng)圖像的濾鏡。這些濾鏡可以解決照片中常見的一些問題盲赊。
表3-1 Core Image用于增強(qiáng)圖像的濾鏡
濾鏡 | 作用 |
---|---|
CIRedEyeCorrection | 由于相機(jī)閃光燈修復(fù)紅色/琥珀色/白色眼睛 |
CIFaceBalance | 調(diào)整臉部的顏色铣鹏,使膚色愉悅 |
CIVibrance | 增加圖像的飽和度而不會(huì)扭曲膚色 |
CIToneCurve | 調(diào)整圖像對(duì)比度 |
CIHighlightShadowAdjust | 調(diào)整陰影細(xì)節(jié) |
使用自動(dòng)增強(qiáng)濾鏡
自動(dòng)增強(qiáng)API只有兩種方法:autoAdjustmentFilters和autoAdjustmentFiltersWithOptions:。在大多數(shù)情況下哀蘑,您將需要使用提供選項(xiàng)字典的方法诚卸。
您可以設(shè)置以下選項(xiàng):
- 圖像方向,對(duì)CIRedEyeCorrection和CIFaceBalance濾鏡很重要绘迁,因此Core Image可以準(zhǔn)確地找到面部合溺。
- 是否只應(yīng)用紅眼校正。(設(shè)置kCIImageAutoAdjustEnhance為false缀台。)
- 是否應(yīng)用除紅眼校正以外的所有濾鏡棠赛。(設(shè)置kCIImageAutoAdjustRedEye為false。)
autoAdjustmentFiltersWithOptions:方法返回一個(gè)選項(xiàng)濾鏡數(shù)組,您可以將它們鏈接在一起并應(yīng)用于分析的圖像睛约,如清單3-1所示鼎俘。代碼首先創(chuàng)建一個(gè)選項(xiàng)字典。然后它獲取圖像的方向并將其設(shè)置為鍵的值CIDetectorImageOrientation辩涝。
清單3-1 獲取自動(dòng)增強(qiáng)濾鏡并將其應(yīng)用于圖像
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;
}
回想一下而芥,Core Image已經(jīng)設(shè)置了輸入?yún)?shù)值以產(chǎn)生最佳結(jié)果。
您不必立即應(yīng)用自動(dòng)調(diào)整濾鏡膀值。您可以保存濾鏡名稱和參數(shù)值以供日后使用棍丐。保存它們可讓您的應(yīng)用程序稍后執(zhí)行增強(qiáng)功能,而無需再次分析圖像沧踏。