iOS中的CoreImage框架

2021-07-22 12:40:02 字數 2478 閱讀 1755

core image是ios中的影象處理框架,使用上比較簡單方便,常用於**的濾鏡處理,還有就是面部檢測(沒有識別)等用途。

coreimage框架裡主要包括以下幾個我們常用的模組:

ciimage:這是代表影象的類。

cifilter:代表濾鏡的乙個類,能夠通過key-value來設定輸入值,用於為ciimage新增濾鏡。

cicontext:用於渲染ciimage。

cidetector:用於分析ciimage,得到cifeature。

cifeature\cifacefeature:這部分主要用於面部檢測等應用。

在使用coreimage的時候,處理流程比較簡單,基本流程如下:

初始化ciimage;

初始化濾鏡cifilter,通過鍵-值編碼設定輸入值。(也就是設定什麼濾鏡)

將輸入到濾鏡當中;

將處理好的輸出;

初始化cicontext;

通過cicontext獲取到cgimage控制代碼,最終獲取到;如cicontext是基於gpu的,可以用open es 2.0畫出來;

使用完後,記得釋放cgimageref;

//coreimage使用部分

ciimage *ciimage = [[ciimage alloc] initwithimage:image];

//選擇高斯模糊濾鏡

cifilter *blurfilter = [cifilter filterwithname:@"cigaussianblur"];

//將輸入到濾鏡

[blurfilter setvalue:ciimage forkey:kciinputimagekey];

//輸出影象

ciimage *outciimage = [blurfilter valueforkey:kcioutputimagekey];

cicontext *cicontext = [cicontext contextwithoptions:nil];

cgimageref outcgimage = [cicontext createcgimage:outciimage fromrect[outciimage extent]];

//最終

uiimage *blurimage = [uiimage imagewithcgimage:outcgimage];

//釋放

cgimagerelease(outcgimage);

效果如下:

原始影象(喵^-^):

高斯模糊後的:

//設定濾鏡的模糊程度,是採用kvc的形式

[blurfilter setvalue:@(100) forkey:kciinputradiuskey];

//要檢視有哪些屬性可以設定,可以列印出屬性來檢視

nslog(@"%@",[blurfilter attributes]);

log出來的屬性資訊:

這裡面可以看到,在上面設定濾鏡的的時候用的kcioutputimagekey對應的就是inputimage那個字段;而下面inputradius就是可以調節模糊程度的,告訴了這個值的一些資訊,如型別、預設值、描述等,一般帶input的字段就可以設定值來調節了,所以對應著就是設定kciinputradiuskey值就可以改變模糊程度了。

下面是不同的模糊程度的對比:

設定模糊程度5:

設定模糊程度100:

其他濾鏡用法相似。列舉常用的幾個:

cicolorcontrols:可調節的亮度、對比度、飽和度等。

cicolorinvert:反轉顏色的濾鏡。

cisepiatone:棕色濾鏡。

cipixellate:畫素濾鏡。(恩,可以打馬賽克了)

IOS 中的CoreImage框架

coreimage framework 組成 主要分為三部分 1 定義部分 coreimage 何coreimagedefines。見名思義,代表了coreimage 這個框架和它的定義。2 操作部分 濾鏡 cifliter cifilter 產生乙個ciimage。典型的,接受一到多的作為輸入,經...

iOS人臉識別 CoreImage

1 從初始uiimage獲取乙個ciimage物件。2 建立乙個用於分析物件的cicontext。3 通過type和options引數建立乙個cidetector例項。type引數指定了要識別的特徵型別。options引數可以設定識別特徵的精確度,低精確度速度快,高精確度更準確。4 建立乙個影象陣列...

iOS 原生CoreImage人臉識別

首先定義屬性 property strong,nonatomic uiimage ima property strong,nonatomic uiimageview iamgeview self ima uiimage imagenamed 123.png self iamgeview uiimag...