關(guān)于GPUImage簡單介紹:
作者:BradLarson,github:https://github.com/BradLarson/GPUImage
GPUImage是一個非常棒的圖像處理的開源庫,里面提供了125種濾鏡效果來加工圖像,并且支持照相機和攝像機的實時濾鏡,能夠滿足我們?nèi)粘C李?濾鏡開效果晶通。通過這樣強大的開源框架,我們可以在其基礎(chǔ)上開發(fā)定制我們自己的美圖應(yīng)用!
GPUImage主要類:
GPUImageStillCamera:用于實時拍攝照片
GPUImageView: 主要用于GPUImage的圖像
GPUImagePicture:用于處理拍攝好/選取的圖片
GPUimageFilter類或者子類形庭,這個就是我們主要用于處理的濾鏡的核心,這個類繼承自GPUImageOutput,并且遵守GPUImageInput協(xié)議
?主要的濾鏡大致分為以下四類(摘錄自作者翻譯大概如下 )?
1.顏色調(diào)整:
GPUImageBrightnessFilter:調(diào)整圖像的亮度
brightness(亮度):調(diào)整后的亮度(-1.0 - 1.0搞动,默認值為0.0)
GPUImageExposureFilter:調(diào)整圖像的曝光
exposure(曝光):調(diào)整曝光(-10.0 - 10.0宦搬,默認值為0.0)
GPUImageContrastFilter:調(diào)整圖像的對比度
contrast(對比度):調(diào)整后的對比度(0.0 - 4.0拒课,默認值為1.0)
GPUImageSaturationFilter:調(diào)整圖像的飽和度
saturation(飽和度):應(yīng)用于圖像的飽和度或去飽和度(0.0 - 2.0僧凰,默認值為1.0)
GPUImageGammaFilter:調(diào)整圖像的灰度系數(shù)
gamma:要應(yīng)用的伽瑪調(diào)整(0.0 - 3.0窒百,默認值為1.0)
GPUImageLevelsFilter:類似Photoshop的級別調(diào)整。min刺洒,max鳖宾,minOut和maxOut參數(shù)是[0,1]范圍內(nèi)的浮點數(shù)。如果Photoshop中的參數(shù)在[0,255]范圍內(nèi)逆航,則必須先將它們轉(zhuǎn)換為[0,1]鼎文。gamma / mid參數(shù)是float> = 0.這與Photoshop中的值匹配。如果要將電平應(yīng)用于RGB以及各個通道因俐,則需要使用此濾波器兩次 - 首先是單個通道拇惋,然后是所有通道。
GPUImageColorMatrixFilter:通過對圖像應(yīng)用矩陣來變換圖像的顏色
colorMatrix:用于轉(zhuǎn)換圖像中每種顏色的4x4矩陣
intensity(強度):新變換顏色替換每個像素的原始顏色的程度
GPUImageRGBFilter:調(diào)整圖像的各個RGB通道
red:每個顏色通道乘以的標準化值抹剩。范圍從0.0開始撑帖,默認值為1.0。
green:
bule:
GPUImageHueFilter:調(diào)整圖像的色調(diào)
hue(色調(diào)):色調(diào)角度吧兔,以度為單位磷仰。默認為90度
GPUImageVibranceFilter:調(diào)整圖像的振動
vibrance:要應(yīng)用的振動調(diào)整,使用0.0作為默認值境蔼,建議的最小值/最大值分別為-1.2和1.2左右灶平。
GPUImageWhiteBalanceFilter:調(diào)整圖像的白平衡。
temperature(溫度):以oK為單位調(diào)整圖像的溫度箍土。值4000非撤晗恚酷,7000非常溫暖吴藻。默認值為5000.請注意瞒爬,4000到5000之間的比例幾乎與5000和7000之間的比例一樣重要。
tint(色調(diào)):調(diào)整圖像的色調(diào)沟堡。值-200?非常綠侧但,200?非常粉紅色。默認值為0航罗。
GPUImageToneCurveFilter:根據(jù)每個顏色通道的樣條曲線調(diào)整圖像的顏色禀横。
redControlPoints:
greenControlPoints:
blueControlPoints:
rgbCompositeControlPoints:色調(diào)曲線采用一系列控制點,這些控制點定義每個顏色分量的樣條曲線粥血,或復(fù)合材料中的所有三個顏色分量柏锄。它們作為NSValue包裝的CGPoints存儲在NSArray中酿箭,標準化的X和Y坐標為0-1。默認值為(0,0)趾娃,(0.5,0.5)缭嫡,(1,1)。
GPUImageHighlightShadowFilter:調(diào)整圖像的陰影和高光
shadows(陰影):增加以減輕陰影抬闷,從0.0到1.0妇蛀,默認值為0.0。
highlights(高光):減少高亮變暗饶氏,從1.0到0.0讥耗,默認為1.0。
GPUImageHighlightShadowTintFilter:允許您使用顏色和強度獨立地著色圖像的陰影和高光
shadowTintColor:陰影色調(diào)RGB顏色(GPUVector4)疹启。默認值:(?{1.0f, 0.0f, 0.0f, 1.0f}紅色)。
highlightTintColor:突出顯示色調(diào)RGB顏色(GPUVector4)蔼卡。默認值:(?{0.0f, 0.0f, 1.0f, 1.0f}藍色)喊崖。
shadowTintIntensity:陰影色調(diào)強度,從0.0到1.0雇逞。默認值:0.0
highlightTintIntensity:突出顯示色調(diào)強度荤懂,從0.0到1.0,默認值為0.0塘砸。
GPUImageLookupFilter:使用RGB顏色查找圖像重新映射圖像中的顏色节仿。首先,使用您最喜歡的照片編輯應(yīng)用程序?qū)⑦^濾器應(yīng)用于GPUImage / framework / Resources中的lookup.png掉蔬。為了使其正常工作廊宪,每個像素顏色必須不依賴于其他像素(例如,模糊將不起作用)女轿。如果需要更復(fù)雜的過濾器箭启,可以根據(jù)需要創(chuàng)建任意數(shù)量的查找表。準備好后蛉迹,使用新的lookup.png文件作為GPUImageLookupFilter的第二個輸入傅寡。
GPUImageAmatorkaFilter:基于Amatorka的Photoshop動作的照片濾鏡:http://amatorka.deviantart.com/art/Amatorka-Action-2-121069631?。如果要使用此效果北救,則必須將“GPUImage資源”文件夾中的lookup_amatorka.png添加到應(yīng)用程序包中荐操。
GPUImageMissEtikateFilter:基于Miss Etikate的Photoshop動作的照片濾鏡:http://miss-etikate.deviantart.com/art/Photoshop-Action-15-120151961?。如果要使用此效果珍策,則必須將“GPUImage資源”文件夾中的lookup_miss_etikate.png添加到應(yīng)用程序包中托启。
GPUImageSoftEleganceFilter:另一種基于查找的顏色重映射過濾器。如果要使用此效果膛壹,則必須將“GPUImage資源”文件夾中的lookup_soft_elegance_1.png和lookup_soft_elegance_2.png添加到應(yīng)用程序包中驾中。
GPUImageSkinToneFilter:膚色調(diào)整濾鏡唉堪,可影響?yīng)毺氐臏\色膚色,并相應(yīng)調(diào)整粉色/綠色或粉色/橙色范圍肩民。默認值以白種人皮膚為目標唠亚,但可根據(jù)需要進行調(diào)整。
skinToneAdjust:調(diào)整膚色的量持痰。默認值:0.0灶搜,建議最小值/最大值:-0.3和0.3。
skinHue:檢測皮膚色調(diào)工窍。默認值:0.05(白種人皮膚偏紅皮膚)割卖。
skinHueThreshold:皮膚色調(diào)的變化量。默認值:40.0患雏。
maxHueShift:允許的最大色調(diào)偏移量鹏溯。默認值:0.25。
maxSaturationShift?=要移動的最大飽和度(使用橙色時)淹仑。默認值:0.4丙挽。
upperSkinToneColor?=?GPUImageSkinToneUpperColorGreen或GPUImageSkinToneUpperColorOrange
GPUImageColorInvertFilter:反轉(zhuǎn)圖像的顏色
GPUImageGrayscaleFilter:將圖像轉(zhuǎn)換為灰度(飽和度濾鏡的執(zhí)行速度略快,無法改變顏色的貢獻)
GPUImageMonochromeFilter:根據(jù)每個像素的亮度將圖像轉(zhuǎn)換為單色版本
intensity(強度):特定顏色替換正常圖像顏色的程度(0.0 - 1.0匀借,默認值為1.0)
color:用作效果基礎(chǔ)的顏色蹋宦,默認值為(0.6,0.45,0.3,1.0)椅寺。
GPUImageFalseColorFilter:使用圖像的亮度在兩個用戶指定的顏色之間混合
firstColor:第一種和第二種顏色分別指定哪些顏色代替圖像的暗區(qū)和亮區(qū)。默認值為(0.0,0.0,0.5)amd(1.0,0.0,0.0)。
secondColor:
GPUImageHazeFilter:用于添加或刪除霧霾(類似于UV濾鏡)
distance(距離):應(yīng)用的顏色強度俺叭。默認值為0.-和.3之間的值最好绪抛。
slope(斜率):顏色變化量饥追。默認值為0.-和.3之間的值最好纲刀。
GPUImageSepiaFilter:簡單的棕褐色調(diào)濾波器
intensity(強度):棕褐色調(diào)替換正常圖像顏色的程度(0.0 - 1.0,默認值為1.0)
GPUImageOpacityFilter:調(diào)整傳入圖像的Alpha通道
opacity(不透明度):將每個像素的傳入Alpha通道乘以(0.0 - 1.0屑咳,默認值為1.0)的值
GPUImageSolidColorGenerator:輸出生成的純色圖像萨赁。您需要使用-forceProcessingAtSize定義圖像大小:
color:用于填充圖像的四分量格式的顏色兆龙。
GPUImageLuminanceThresholdFilter:亮度高于閾值的像素將顯示為白色杖爽,下面的像素將顯示為黑色
threshold(閾值):亮度threshold,從0.0到1.0紫皇,默認值為0.5
GPUImageAdaptiveThresholdFilter:確定像素周圍的局部亮度慰安,如果低于該局部亮度則將像素變?yōu)楹谏绻哂谠撝祫t變?yōu)榘咨掀獭_@對于在不同光照條件下挑選文本非常有用化焕。
blurRadiusInPixels:背景平均模糊半徑的乘數(shù),以像素為單位铃剔,默認值為4撒桨。
GPUImageAverageLuminanceThresholdFilter:這應(yīng)用閾值操作查刻,其中閾值根據(jù)場景的平均亮度連續(xù)調(diào)整。
thresholdMultiplier:這是平均亮度乘以的一個因子凤类,以達到要使用的最終threshold穗泵。默認情況下,這是1.0谜疤。
GPUImageHistogramFilter:分析輸入圖像并創(chuàng)建輸出直方圖佃延,其中包含每個顏色值出現(xiàn)的頻率。該濾波器的輸出是3像素高夷磕,256像素寬的圖像履肃,其中心(垂直)像素包含與發(fā)生各種顏色值的頻率相對應(yīng)的像素。每個顏色值占據(jù)256個寬度位置中的一個坐桩,從左側(cè)的0到右側(cè)的255尺棋。可以為各個顏色通道(kGPUImageHistogramRed撕攒,kGPUImageHistogramGreen陡鹃,kGPUImageHistogramBlue),圖像的亮度(kGPUImageHistogramLuminance)或一次所有三個顏色通道(kGPUImageHistogramRGB)生成此直方圖抖坪。
downsamplingFactor:不是對每個像素進行采樣,而是指示采樣的圖像的哪個部分闷叉。默認情況下擦俐,這是16,最小值為1.這是為了防止直方圖飽和握侧,直方圖只能在每個顏色值過載之前記錄256個像素蚯瞧。
GPUImageHistogramGenerator:這是一個特殊的過濾器,因為它主要用于處理GPUImageHistogramFilter品擎。它生成由GPUImageHistogramFilter生成的顏色直方圖的輸出表示埋合,但它可以重新用于顯示其他類型的值。它接收圖像并查看中心(垂直)像素萄传。然后甚颂,它在輸出紋理中的單獨彩色圖形中繪制RGB分量的數(shù)值。您可能需要強制此過濾器的大小才能使其輸出可見秀菱。
GPUImageAverageColor:處理輸入圖像并通過平均圖像中每個像素的RGBA分量來確定場景的平均顏色振诬。縮減過程用于逐步下采樣GPU上的源圖像衍菱,然后在CPU上進行短平均計算赶么。此過濾器的輸出沒有意義,但您需要將colorAverageProcessingFinishedBlock屬性設(shè)置為一個塊脊串,該塊接受四個顏色分量和一個幀時間并對它們執(zhí)行某些操作辫呻。
GPUImageLuminosity:與GPUImageAverageColor類似清钥,這會將圖像縮小到平均亮度。您需要設(shè)置luminosityProcessingFinishedBlock來處理此過濾器的輸出放闺,該輸出僅返回亮度值和幀時間祟昭。
GPUImageChromaKeyFilter:對于圖像中的給定顏色,將alpha通道設(shè)置為0.這類似于GPUImageChromaKeyBlendFilter雄人,而不是在第二個圖像中混合匹配的顏色从橘,這不會占用第二個圖像而只是轉(zhuǎn)動一個給定的顏色顏色透明。
thresholdSensitivity:要替換的目標顏色需要與顏色匹配的接近程度(默認值為0.4)
smoothing(平滑):混合顏色匹配的平滑程度(默認值為0.1)
2.圖像處理
GPUImageTransformFilter:這將對圖像應(yīng)用任意2-D或3-D變換
affineTransform:這需要一個CGAffineTransform來調(diào)整二維圖像
transform3D:這需要一個CATransform3D來操縱三維圖像
ignoreAspectRatio:默認情況下础钠,保留變換圖像的寬高比恰力,但可以將其設(shè)置為YES以使變換獨立于寬高比
GPUImageCropFilter:將圖像裁剪到特定區(qū)域,然后僅將該區(qū)域傳遞到濾鏡中的下一個舞臺
cropRegion:從圖像中裁剪出來的矩形區(qū)域旗吁,標準化為0.0 - 1.0的坐標踩萎。(0.0,0.0)位置位于圖像的左上角。
GPUImageLanczosResamplingFilter:這使您可以使用Lanczos重采樣對圖像進行上采樣或下采樣很钓,從而比標準線性或三線性插值產(chǎn)生明顯更好的質(zhì)量香府。只需使用-forceProcessingAtSize:設(shè)置過濾器的目標輸出分辨率,然后對該新大小重新采樣圖像码倦。
GPUImageSharpenFilter:銳化圖像
sharpness(銳度):應(yīng)用的銳度調(diào)整(-4.0 - 4.0企孩,默認值為0.0)
GPUImageUnsharpMaskFilter:應(yīng)用非銳化蒙版
blurRadiusInPixels:基礎(chǔ)高斯模糊的模糊半徑。默認值為4.0袁稽。
intensity(強度):銳化的強度勿璃,從0.0開始,默認值為1.0
GPUImageGaussianBlurFilter:硬件優(yōu)化的可變半徑高斯模糊
texelSpacingMultiplier:紋素之間間距的乘數(shù)推汽,范圍從0.0開始补疑,默認值為1.0。調(diào)整此項可能會略微增加模糊強度歹撒,但會在結(jié)果中引入偽影莲组。強烈建議首先使用其他參數(shù),然后再觸摸此參數(shù)暖夭。
blurRadiusInPixels:用于模糊的半徑(以像素為單位)锹杈,默認值為2.0。這會調(diào)整高斯分布函數(shù)中的sigma變量鳞尔。
blurRadiusAsFractionOfImageWidth:
blurRadiusAsFractionOfImageHeight:設(shè)置這些屬性將允許模糊半徑隨圖像的大小縮放
blurPasses:順序模糊傳入圖像的次數(shù)嬉橙。通過越多,過濾器越慢寥假。
GPUImageBoxBlurFilter:硬件優(yōu)化的可變半徑框模糊
texelSpacingMultiplier:紋素之間間距的乘數(shù)市框,范圍從0.0開始,默認值為1.0糕韧。調(diào)整此項可能會略微增加模糊強度枫振,但會在結(jié)果中引入偽影喻圃。強烈建議首先使用其他參數(shù),然后再觸摸此參數(shù)粪滤。
blurRadiusInPixels:用于模糊的半徑(以像素為單位)斧拍,默認值為2.0。這會調(diào)整高斯分布函數(shù)中的sigma變量杖小。
blurRadiusAsFractionOfImageWidth:
blurRadiusAsFractionOfImageHeight:設(shè)置這些屬性將允許模糊半徑隨圖像的大小縮放
blurPasses:順序模糊傳入圖像的次數(shù)肆汹。通過越多,過濾器越慢予权。
GPUImageSingleComponentGaussianBlurFilter:GPUImageGaussianBlurFilter的修改昂勉,僅對紅色組件進行操作
texelSpacingMultiplier:紋素之間間距的乘數(shù),范圍從0.0開始扫腺,默認值為1.0岗照。調(diào)整此項可能會略微增加模糊強度,但會在結(jié)果中引入偽影笆环。強烈建議首先使用其他參數(shù)攒至,然后再觸摸此參數(shù)。
blurRadiusInPixels:用于模糊的半徑(以像素為單位)躁劣,默認值為2.0迫吐。這會調(diào)整高斯分布函數(shù)中的sigma變量。
blurRadiusAsFractionOfImageWidth:
blurRadiusAsFractionOfImageHeight:設(shè)置這些屬性將允許模糊半徑隨圖像的大小縮放
blurPasses:順序模糊傳入圖像的次數(shù)账忘。通過越多渠抹,過濾器越慢。
GPUImageGaussianSelectiveBlurFilter:保持焦點在圓形區(qū)域內(nèi)的高斯模糊
blurRadiusInPixels:用于模糊的半徑(以像素為單位)闪萄,默認值為5.0。這會調(diào)整高斯分布函數(shù)中的sigma變量奇颠。
excludeCircleRadius:從模糊中排除的圓形區(qū)域的半徑
excludeCirclePoint:從模糊中排除圓形區(qū)域的中心
excludeBlurSize:模糊部分和清晰圓之間區(qū)域的大小
aspectRatio:圖像的寬高比败去,用于調(diào)整對焦區(qū)域的圓度。默認情況下烈拒,這與圖像寬高比匹配圆裕,但您可以覆蓋此值。
GPUImageGaussianBlurPositionFilter:GPUImageGaussianSelectiveBlurFilter的反轉(zhuǎn)荆几,僅在某個圓圈內(nèi)應(yīng)用模糊
blurSize:模糊大小的乘數(shù)吓妆,范圍從0.0開始,默認值為1.0
blurCenter:模糊的中心吨铸,默認為0.5,0.5
blurRadius:模糊的半徑行拢,默認為1.0
GPUImageiOSBlurFilter:嘗試在控制中心等位置復(fù)制iOS 7上使用的背景模糊。
blurRadiusInPixels:用于模糊的半徑(以像素為單位)诞吱,默認值為12.0舟奠。這會調(diào)整高斯分布函數(shù)中的sigma變量竭缝。
saturation(飽和度):飽和度范圍從0.0(完全去飽和)到2.0(最大飽和度),0.8為正常水平
downsampling(下采樣):下采樣的程度沼瘫,然后對輸入圖像進行上采樣以最小化高斯模糊內(nèi)的計算抬纸,默認值為4.0。
GPUImageMedianFilter:在3x3區(qū)域內(nèi)獲取三種顏色分量的中值
GPUImageBilateralFilter:雙邊模糊耿戚,試圖模糊相似的顏色值湿故,同時保留銳邊
texelSpacingMultiplier:紋素讀取之間間距的乘數(shù),范圍從0.0開始膜蛔,默認值為4.0
distanceNormalizationFactor:中心顏色與樣本顏色之間距離的歸一化因子坛猪,默認值為8.0。
GPUImageTiltShiftFilter:模擬傾斜移位鏡頭效果
blurRadiusInPixels:基礎(chǔ)模糊的半徑飞几,以像素為單位砚哆。默認情況下為7.0。
topFocusLevel:圖像中對焦區(qū)域頂部的標準化位置屑墨,此值應(yīng)低于bottomFocusLevel躁锁,默認值為0.4
bottomFocusLevel:圖像中對焦區(qū)域底部的標準化位置,此值應(yīng)高于topFocusLevel卵史,默認值為0.6
focusFallOffRate:圖像模糊遠離對焦區(qū)域的速率战转,默認為0.2
GPUImage3x3ConvolutionFilter:針對圖像運行3x3卷積內(nèi)核
convolutionKernel:卷積核是一個3x3的值矩陣,用于應(yīng)用于像素及其周圍8個像素以躯。矩陣以行主順序指定槐秧,左上角像素為一個,右下角為三個忧设。三個刁标。如果矩陣中的值不等于1.0,則圖像可能會變亮或變暗址晕。
GPUImageSobelEdgeDetectionFilter:Sobel邊緣檢測膀懈,邊緣以白色突出顯示
texelWidth:
texelHeight:這些參數(shù)會影響檢測到的邊緣的可見性
edgeStrength:調(diào)整過濾器的動態(tài)范圍。較高的值會導(dǎo)致較強的邊緣谨垃,但會使強度色彩空間飽和启搂。默認值為1.0。
GPUImagePrewittEdgeDetectionFilter:Prewitt邊緣檢測刘陶,邊緣以白色突出顯示
texelWidth:
texelHeight:這些參數(shù)會影響檢測到的邊緣的可見性
edgeStrength:調(diào)整過濾器的動態(tài)范圍胳赌。較高的值會導(dǎo)致較強的邊緣,但會使強度色彩空間飽和匙隔。默認值為1.0疑苫。
GPUImageThresholdEdgeDetectionFilter:執(zhí)行Sobel邊緣檢測,但應(yīng)用閾值而不是給出漸進的強度值
texelWidth:
texelHeight:這些參數(shù)會影響檢測到的邊緣的可見性
edgeStrength:調(diào)整過濾器的動態(tài)范圍。較高的值會導(dǎo)致較強的邊緣缀匕,但會使強度色彩空間飽和纳决。默認值為1.0。
threshold:高于此threshold的任何邊緣將為黑色乡小,并且任何低于白色的邊緣阔加。范圍從0.0到1.0,默認值為0.8
GPUImageCannyEdgeDetectionFilter:這使用完整的Canny過程突出顯示一個像素寬的邊緣
texelWidth:
texelHeight:這些參數(shù)會影響檢測到的邊緣的可見性
blurRadiusInPixels:高斯模糊的基礎(chǔ)模糊半徑满钟。默認值為2.0胜榔。
blurTexelSpacingMultiplier:底層模糊紋理間距乘數(shù)。默認值為1.0湃番。
upperThreshold:梯度大小超過此閾值的任何邊將通過并顯示在最終結(jié)果中夭织。默認值為0.4。
lowerThreshold:梯度幅度低于此閾值的任何邊緣都將失敗并從最終結(jié)果中移除吠撮。默認值為0.1尊惰。
GPUImageHarrisCornerDetectionFilter:在輸入圖像上運行Harris角點檢測算法,并生成一個圖像泥兰,其中這些角點為白色像素弄屡,其他一切都為黑色⌒可以設(shè)置cornersDetectedBlock膀捷,并為您提供一個角落列表(在規(guī)范化的0..1 X,Y坐標中)削彬,用于您要執(zhí)行的任何其他操作全庸。
blurRadiusInPixels:基礎(chǔ)高斯模糊的半徑。默認值為2.0融痛。
sensitivity(靈敏度):應(yīng)用于調(diào)整濾波器中生成的角度圖的動態(tài)范圍的內(nèi)部比例因子壶笼。默認值為5.0。
threshold(閾值):將點檢測為拐角的threshold雁刷。這可能會根據(jù)尺寸拌消,照明條件和iOS設(shè)備相機類型而有很大差異,因此可能需要一些實驗才能適合您的情況安券。默認值為0.20。
GPUImageNobleCornerDetectionFilter:在Harris角點檢測器上運行Noble變量氓英。其行為如上所述用于Harris檢測器侯勉。
blurRadiusInPixels:基礎(chǔ)高斯模糊的半徑。默認值為2.0铝阐。
sensitivity(靈敏度):應(yīng)用于調(diào)整濾波器中生成的角度圖的動態(tài)范圍的內(nèi)部比例因子址貌。默認值為5.0。
threshold(閾值):將點檢測為拐角的threshold。這可能會根據(jù)尺寸练对,照明條件和iOS設(shè)備相機類型而有很大差異遍蟋,因此可能需要一些實驗才能適合您的情況。默認值為0.2螟凭。
GPUImageShiTomasiCornerDetectionFilter:運行Shi-Tomasi特征檢測器虚青。其行為如上所述用于Harris檢測器。
blurRadiusInPixels:基礎(chǔ)高斯模糊的半徑螺男。默認值為2.0棒厘。
sensitivity(靈敏度):應(yīng)用于調(diào)整濾波器中生成的角度圖的動態(tài)范圍的內(nèi)部比例因子。默認值為1.5下隧。
threshold(閾值):將點檢測為拐角的threshold奢人。這可能會根據(jù)尺寸,照明條件和iOS設(shè)備相機類型而有很大差異淆院,因此可能需要一些實驗才能適合您的情況何乎。默認值為0.2。
GPUImageNonMaximumSuppressionFilter:目前僅用作Harris角點檢測濾波器的一部分土辩,這將在每個像素周圍采樣1像素的盒子支救,并確定中心像素的紅色通道是否是該區(qū)域中的最大值。如果是脯燃,它就會停留搂妻。如果不是,則對所有顏色分量設(shè)置為0辕棚。
GPUImageXYDerivativeFilter:Harris角點檢測濾波器中的一個內(nèi)部組件欲主,它計算這一點左右像素之間的平方差,這個像素上下的像素的平方差逝嚎,以及這兩個差異的乘積扁瓢。
GPUImageCrosshairGenerator:它在圖像上繪制一系列十字準線,最常用于識別機器視覺特征补君。它不像其他濾鏡那樣采用標準圖像引几,而是采用其-renderCrosshairsFromArray:count:方法中的一系列點來完成實際繪制。您需要強制此過濾器以您需要的特定輸出大小進行渲染挽铁。
crosshairWidth:要在屏幕上繪制的十字準線的寬度(以像素為單位)伟桅。
GPUImageDilationFilter:執(zhí)行圖像擴張操作,其中矩形鄰域中紅色通道的最大強度用于該像素的強度叽掘。要初始化的矩形區(qū)域的半徑在初始化時指定楣铁,范圍為1-4像素。這適用于灰度圖像更扁,并可擴展明亮區(qū)域盖腕。
GPUImageRGBDilationFilter:這與GPUImageDilationFilter相同赫冬,只是它作用于所有顏色通道,而不僅僅是紅色通道溃列。
GPUImageErosionFilter:執(zhí)行圖像侵蝕操作劲厌,其中矩形鄰域中的紅色通道的最小強度用于該像素的強度。要初始化的矩形區(qū)域的半徑在初始化時指定听隐,范圍為1-4像素补鼻。這適用于灰度圖像,并可擴展暗區(qū)遵绰。
GPUImageRGBErosionFilter:這與GPUImageErosionFilter相同辽幌,只是它作用于所有顏色通道,而不僅僅是紅色通道椿访。
GPUImageOpeningFilter:這會對圖像的紅色通道進行侵蝕乌企,然后進行相同半徑的擴張。半徑在初始化時設(shè)置成玫,范圍為1-4像素加酵。這會過濾掉較小的明亮區(qū)域。
GPUImageRGBOpeningFilter:這與GPUImageOpeningFilter相同哭当,只是它作用于所有顏色通道猪腕,而不僅僅是紅色通道。
GPUImageClosingFilter:這會對圖像的紅色通道執(zhí)行擴張钦勘,然后對同一半徑進行侵蝕陋葡。半徑在初始化時設(shè)置,范圍為1-4像素彻采。這會濾除較小的暗區(qū)腐缤。
GPUImageRGBClosingFilter:這與GPUImageClosingFilter相同,只是它作用于所有顏色通道肛响,而不僅僅是紅色通道岭粤。
GPUImageLocalBinaryPatternFilter:執(zhí)行8個周圍像素的紅色通道的強度與中心像素的紅色通道的強度的比較,將比較結(jié)果編碼為變?yōu)樵撓袼貜姸鹊奈淮厮瘛W畹陀行皇怯疑辖潜容^剃浇,逆時針以正確比較結(jié)束為最高位。
GPUImageLowPassFilter:這會對傳入的視頻幀應(yīng)用低通濾波器猎物。這基本上累積了先前幀的加權(quán)滾動平均值和當前幀的加權(quán)滾動平均值虎囚。這可以用于去噪視頻,添加運動模糊或用于創(chuàng)建高通濾波器蔫磨。
filterStrength:它控制先前累積的幀與當前累積的幀混合的程度溜宽。范圍從0.0到1.0,默認值為0.5质帅。
GPUImageHighPassFilter:這會對傳入的視頻幀應(yīng)用高通濾波器。這是低通濾波器的反函數(shù),顯示當前幀與先前幀的加權(quán)滾動平均值之間的差異煤惩。這對于運動檢測最有用嫉嘀。
filterStrength:它控制先前累積幀的混合程度,然后從當前累計幀中減去魄揉。范圍從0.0到1.0剪侮,默認值為0.5。
GPUImageMotionDetector:這是一個基于高通濾波器的運動檢測器洛退。您可以設(shè)置motionDetectionBlock瓣俯,并且在每個輸入幀上,它將為您提供場景中任何檢測到的移動的質(zhì)心(在標準化的X兵怯,Y坐標中)以及場景的運動強度彩匕。
lowPassFilterStrength:它控制幕后使用的低通濾波器的強度,以建立與傳入幀進行比較的基線媒区。范圍從0.0到1.0驼仪,默認值為0.5。
GPUImageHoughTransformLineDetector:使用Hough變換檢測圖像中的線到并行坐標空間袜漩。這種方法完全基于布爾諾理工大學(xué)Graph @ FIT研究小組開發(fā)的PC線工藝绪爸,并在其出版物中描述:M.Dubská,J宙攻。Havel和A. Herout奠货。使用平行坐標和OpenGL實時檢測線條。2011年SCCG會議記錄座掘,布拉迪斯拉發(fā)递惋,SK,p雹顺。7(http://medusa.fit.vutbr.cz/public/data/papers/2011-SCCG-Dubska-Real-Time-Line-Detection-Using-PC-and-OpenGL.pdf)和M.Dubská丹墨,J哈維爾和A. Herout。PClines - 使用平行坐標的線檢測嬉愧。2011年IEEE計算機視覺和模式識別會議(CVPR)贩挣,p。1489-1494(http://medusa.fit.vutbr.cz/public/data/papers/2011-CVPR-Dubska-PClines.pdf)没酣。
edgeThreshold:檢測到一個點屬于用于確定線的邊的閾值王财。默認值為0.9。
lineDetectionThreshold:檢測到局部最大值屬于并行坐標空間中的線的閾值裕便。默認值為0.20绒净。
linesDetectedBlock:在檢測到行時調(diào)用此塊,通常在每個已處理的幀上偿衰。包含歸一化斜率和m挂疆,b對(y = mx + b)中的截距的AC陣列改览,以及檢測到的行數(shù)和視頻幀的當前時間戳的計數(shù)。
GPUImageLineGenerator:一個生成可以覆蓋場景的線的輔助類缤言”Φ保可以使用-setLineColorRed調(diào)整這些線條的顏色:綠色:藍色:
lineWidth:行的寬度(以像素為單位),默認值為1.0胆萧。
GPUImageMotionBlurFilter:將定向運動模糊應(yīng)用于圖像
blurSize:模糊大小的乘數(shù)庆揩,范圍從0.0開始,默認值為1.0
blurAngle:模糊的角度方向跌穗,以度為單位订晌。默認為0度。
GPUImageZoomBlurFilter:將定向運動模糊應(yīng)用于圖像
blurSize:模糊大小的乘數(shù)蚌吸,范圍從0.0開始锈拨,默認值為1.0
blurCenter:模糊的標準化中心。(0.5,0.5)默認情況下
3.混合模式
GPUImageChromaKeyBlendFilter:用第二個圖像有選擇地替換第一個圖像中的顏色
thresholdSensitivity:要替換的目標顏色需要與顏色匹配的接近程度(默認值為0.4)
smoothing(平滑):混合顏色匹配的平滑程度(默認值為0.1)
GPUImageDissolveBlendFilter:應(yīng)用兩個圖像的溶解混合
mix:第二個圖像覆蓋第一個圖像的程度(0.0 - 1.0套利,默認值為0.5)
GPUImageMultiplyBlendFilter:應(yīng)用兩個圖像的多重混合
GPUImageAddBlendFilter:應(yīng)用兩個圖像的疊加混合
GPUImageSubtractBlendFilter:應(yīng)用兩個圖像的減法混合
GPUImageDivideBlendFilter:應(yīng)用兩個圖像的分割混合
GPUImageOverlayBlendFilter:應(yīng)用兩個圖像的疊加混合
GPUImageDarkenBlendFilter:通過獲取圖像之間每個顏色分量的最小值來混合兩個圖像
GPUImageLightenBlendFilter:通過獲取圖像之間每個顏色分量的最大值來混合兩個圖像
GPUImageColorBurnBlendFilter:應(yīng)用兩個圖像的顏色刻錄混合
GPUImageColorDodgeBlendFilter:應(yīng)用兩個圖像的顏色減淡混合
GPUImageScreenBlendFilter:應(yīng)用兩個圖像的屏幕混合
GPUImageExclusionBlendFilter:應(yīng)用兩個圖像的排除混合
GPUImageDifferenceBlendFilter:應(yīng)用兩個圖像的差異混合
GPUImageHardLightBlendFilter:應(yīng)用兩個圖像的硬光混合
GPUImageSoftLightBlendFilter:應(yīng)用兩個圖像的柔和光混合
GPUImageAlphaBlendFilter:根據(jù)第二個alpha通道將第二個圖像混合在第一個圖像上
mix:第二個圖像覆蓋第一個圖像的程度(0.0 - 1.0推励,默認值為1.0)
GPUImageSourceOverBlendFilter:在兩個圖像的混合上應(yīng)用源
GPUImageColorBurnBlendFilter:應(yīng)用兩個圖像的顏色刻錄混合
GPUImageColorDodgeBlendFilter:應(yīng)用兩個圖像的顏色減淡混合
GPUImageNormalBlendFilter:應(yīng)用兩個圖像的正常混合
GPUImageColorBlendFilter:應(yīng)用兩個圖像的顏色混合
GPUImageHueBlendFilter:應(yīng)用兩個圖像的色調(diào)混合
GPUImageSaturationBlendFilter:應(yīng)用兩個圖像的飽和度混合
GPUImageLuminosityBlendFilter:應(yīng)用兩個圖像的光度混合
GPUImageLinearBurnBlendFilter:應(yīng)用兩個圖像的線性刻錄混合
GPUImagePoissonBlendFilter:應(yīng)用兩個圖像的泊松混合
mix:混合范圍從0.0(僅圖像1)到1.0(僅圖像2漸變)肉迫,1.0為正常水平
numIterations:傳播漸變的次數(shù)验辞。如果你想要達到接近收斂的程度,可以將它調(diào)高到100甚至1000喊衫。是的跌造,這會很慢。
GPUImageMaskFilter:使用另一個圖像掩蓋一個圖像
4.視覺效果
GPUImagePixellateFilter:對圖像或視頻應(yīng)用像素化效果
fractionalWidthOfAPixel:像素的大小族购,作為圖像寬度和高度的一小部分(0.0 - 1.0壳贪,默認值為0.05)
GPUImagePolarPixellateFilter:根據(jù)極坐標而不是笛卡爾坐標對圖像或視頻應(yīng)用像素化效果
center:應(yīng)用像素化的中心,默認為(0.5,0.5)
pixelSize:小數(shù)像素大小寝杖,分為寬度和高度分量违施。默認值為(0.05,0.05)
GPUImagePolkaDotFilter:將圖像分解為常規(guī)網(wǎng)格中的彩色點
fractionalWidthOfAPixel:點的大小,作為圖像寬度和高度的一小部分(0.0 - 1.0瑟幕,默認值為0.05)
dotScaling:每個網(wǎng)格空間的一小部分由一個點占用磕蒲,從0.0到1.0,默認值為0.9只盹。
GPUImageHalftoneFilter:對圖像應(yīng)用半色調(diào)效果辣往,如新聞打印
fractionalWidthOfAPixel:半色調(diào)點的大小,作為圖像寬度和高度的一小部分(0.0 - 1.0殖卑,默認值為0.05)
GPUImageCrosshatchFilter:這會將圖像轉(zhuǎn)換為黑白交叉線圖案
crossHatchSpacing:圖像的小數(shù)寬度站削,用作交叉線的間距。默認值為0.03孵稽。
lineWidth:交叉線的相對寬度许起。默認值為0.003十偶。
GPUImageSketchFilter:將視頻轉(zhuǎn)換為草圖。這只是Sobel邊緣檢測濾波器园细,顏色反轉(zhuǎn)
texelWidth:
texelHeight:這些參數(shù)會影響檢測到的邊緣的可見性
edgeStrength:調(diào)整過濾器的動態(tài)范圍扯键。較高的值會導(dǎo)致較強的邊緣,但會使強度色彩空間飽和珊肃。默認值為1.0。
GPUImageThresholdSketchFilter:與草圖過濾器相同馅笙,只有邊緣是閾值而不是灰度
texelWidth:
texelHeight:這些參數(shù)會影響檢測到的邊緣的可見性
edgeStrength:調(diào)整過濾器的動態(tài)范圍伦乔。較高的值會導(dǎo)致較強的邊緣,但會使強度色彩空間飽和董习。默認值為1.0烈和。
threshold(閾值):高于此閾值的任何邊緣將為黑色,并且任何低于白色的邊緣皿淋。范圍從0.0到1.0招刹,默認值為0.8
GPUImageToonFilter:它使用Sobel邊緣檢測在物體周圍放置黑色邊框,然后量化圖像中的顏色窝趣,為圖像提供類似卡通的質(zhì)量疯暑。
texelWidth:
texelHeight:這些參數(shù)會影響檢測到的邊緣的可見性
threshold(閾值):邊緣檢測的靈敏度,較低的值更敏感哑舒。范圍從0.0到1.0妇拯,默認值為0.2
quantizationLevels:要在最終圖像中表示的顏色級別數(shù)。默認值為10.0
GPUImageSmoothToonFilter:它使用與GPUImageToonFilter類似的過程洗鸵,只有在使用高斯模糊的香椿效果之前才能消除噪音越锈。
texelWidth:
texelHeight:這些參數(shù)會影響檢測到的邊緣的可見性
blurRadiusInPixels:基礎(chǔ)高斯模糊的半徑。默認值為2.0膘滨。
threshold(閾值):邊緣檢測的靈敏度甘凭,較低的值更敏感。范圍從0.0到1.0火邓,默認值為0.2
quantizationLevels:要在最終圖像中表示的顏色級別數(shù)丹弱。默認值為10.0
GPUImageEmbossFilter:對圖像應(yīng)用浮雕效果
intensity(強度):壓花的強度,從0.0到4.0贡翘,1.0為正常水平
GPUImagePosterizeFilter:這會將顏色動態(tài)范圍縮小為指定的步數(shù)蹈矮,從而產(chǎn)生類似卡通的簡單著色圖像。
colorLevels:減少圖像空間的顏色級別數(shù)鸣驱。范圍從1到256泛鸟,默認值為10。
GPUImageSwirlFilter:在圖像上創(chuàng)建漩渦扭曲
radius:從中心開始應(yīng)用失真的半徑踊东,默認值為0.5
center:圖像的中心(在0 - 1.0的標準化坐標中)關(guān)于哪個扭曲北滥,默認值為(0.5,0.5)
angle:應(yīng)用于圖像的扭曲量刚操,默認值為1.0
GPUImageBulgeDistortionFilter:在圖像上創(chuàng)建凸起失真
radius:從中心開始應(yīng)用失真的半徑个从,默認值為0.25
center:圖像的中心(在0 - 1.0的標準化坐標中)有關(guān)其扭曲的內(nèi)容苏研,默認值為(0.5,0.5)
scale:要應(yīng)用的失真量,從-1.0到1.0脊另,默認值為0.5
GPUImagePinchDistortionFilter:創(chuàng)建圖像的捏合扭曲
radius:從中心開始應(yīng)用失真的半徑济赎,默認值為1.0
center:圖像的中心(在0 - 1.0的標準化坐標中)有關(guān)其扭曲的內(nèi)容鉴逞,默認值為(0.5,0.5)
scale:要應(yīng)用的失真量,從-2.0到2.0司训,默認值為1.0
GPUImageStretchDistortionFilter:創(chuàng)建圖像的拉伸扭曲
center:圖像的中心(在0 - 1.0的標準化坐標中)有關(guān)其扭曲的內(nèi)容构捡,默認值為(0.5,0.5)
GPUImageSphereRefractionFilter:模擬玻璃球體的折射
center:應(yīng)用失真的中心,默認值為(0.5,0.5)
radius:失真的半徑壳猜,范圍從0.0到1.0勾徽,默認值為0.25
refractiveIndex:球體的折射率,默認值為0.71
GPUImageGlassSphereFilter:與GPUImageSphereRefractionFilter相同统扳,只是圖像沒有倒置喘帚,玻璃邊緣有一點點結(jié)霜
center:應(yīng)用失真的中心,默認值為(0.5,0.5)
radius:失真的半徑咒钟,范圍從0.0到1.0吹由,默認值為0.25
refractiveIndex:球體的折射率,默認值為0.71
GPUImageVignetteFilter:執(zhí)行漸暈效果盯腌,淡化邊緣處的圖像
vignetteCenter:tex coords(CGPoint)中暈影的中心溉知,默認值為0.5,0.5
vignetteColor:用于暈影(GPUVector3)的顏色,默認為黑色
vignetteStart:與暈影效果開始的中心的標準化距離腕够,默認值為0.5
vignetteEnd:與暈影效果結(jié)束的中心的標準化距離级乍,默認值為0.75
GPUImageKuwaharaFilter:Kuwahara圖像抽象,來自Kyprianidis等的工作帚湘。人玫荣。在GPU Pro系列中的出版物“GPU上的各向異性Kuwahara過濾”中。這會產(chǎn)生類似油畫的圖像大诸,但它的計算成本非常高捅厂,因此在iPad 2上渲染幀可能需要幾秒鐘。這可能最適合用于靜止圖像资柔。
radius:整數(shù)焙贷,指定應(yīng)用過濾器時要測試的中心像素外的像素數(shù),默認值為4.較高的值會創(chuàng)建更抽象的圖像贿堰,但代價是處理時間要長得多辙芍。
GPUImageKuwaharaRadius3Filter:Kuwahara濾鏡的修改版本,經(jīng)過優(yōu)化,只能在三個像素的半徑上工作
GPUImagePerlinNoiseFilter:生成一個充滿Perlin噪聲的圖像
colorStart:
colorFinish:生成噪聲的顏色范圍
scale:生成的噪聲的縮放比例
GPUImageCGAColorspaceFilter:模擬CGA監(jiān)視器的色彩空間
GPUImageMosaicFilter:此濾鏡采用輸入tileset故硅,tile必須以亮度提升庶灿。它查看輸入圖像并根據(jù)該圖塊的亮度用輸入圖塊替換每個顯示圖塊。這個想法是復(fù)制其他應(yīng)用程序中看到的ASCII視頻過濾器吃衅,但是tileset可以是任何東西往踢。
inputTileSize:
numTiles:
displayTileSize:
colorOn:
GPUImageJFAVoronoiFilter:生成Voronoi映射,供以后使用徘层。
sizeInPixels:各個元素的大小
GPUImageVoronoiConsumerFilter:接收Voronoi地圖峻呕,并使用它來過濾傳入的圖像。
sizeInPixels:各個元素的大小