GPUImage的介紹(一)

關(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ù)肆汹。通過越多,過濾器越慢予权。

GPUImageSingleComponentGaussianBlurFilterGPUImageGaussianBlurFilter的修改昂勉,僅對紅色組件進行操作

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ū)域的圓度。默認情況下烈拒,這與圖像寬高比匹配圆裕,但您可以覆蓋此值。

GPUImageGaussianBlurPositionFilterGPUImageGaussianSelectiveBlurFilter的反轉(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:各個元素的大小

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末趣效,一起剝皮案震驚了整個濱河市山上,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌英支,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哮伟,死亡現(xiàn)場離奇詭異干花,居然都是意外死亡,警方通過查閱死者的電腦和手機楞黄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門池凄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鬼廓,你說我怎么就攤上這事肿仑。” “怎么了碎税?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵尤慰,是天一觀的道長。 經(jīng)常有香客問我雷蹂,道長伟端,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任匪煌,我火速辦了婚禮责蝠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萎庭。我一直安慰自己霜医,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布驳规。 她就那樣靜靜地躺著肴敛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪达舒。 梳的紋絲不亂的頭發(fā)上值朋,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天叹侄,我揣著相機與錄音,去河邊找鬼昨登。 笑死趾代,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的丰辣。 我是一名探鬼主播撒强,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笙什!你這毒婦竟也來了飘哨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤琐凭,失蹤者是張志新(化名)和其女友劉穎芽隆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體统屈,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡胚吁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年愁憔,在試婚紗的時候發(fā)現(xiàn)自己被綠了腕扶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吨掌,死狀恐怖半抱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膜宋,我是刑警寧澤窿侈,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站秋茫,受9級特大地震影響棉磨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜学辱,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一乘瓤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧策泣,春花似錦衙傀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春聪建,著一層夾襖步出監(jiān)牢的瞬間钙畔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工金麸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擎析,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓挥下,卻偏偏與公主長得像揍魂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子棚瘟,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容