GPUImage 过滤器相关
内置过滤器
当前有125个内置过滤器,分为以下类别:
颜色调整
-
GPUImageBrightnessFilter:调整图像的亮度
- 亮度:调整后的亮度(-1.0-1.0,默认值为0.0)
-
GPUImageExposureFilter:调整图像的曝光
- 曝光:调整后的曝光(-10.0-10.0,默认值为0.0)
-
GPUImageContrastFilter:调整图像的对比度
- 对比度:调整后的对比度(0.0-4.0,默认值为1.0)
-
GPUImageSaturationFilter:调整图像的饱和度
- 饱和度:应用于图像的饱和度或去饱和度(0.0-2.0,默认值为1.0)
-
GPUImageGammaFilter:调整图像的灰度系数
- gamma:要应用的gamma调整(0.0-3.0,默认值为1.0)
GPUImageLevelsFilter:类似Photoshop的色阶调整。min,max,minOut和maxOut参数在[0,1]范围内浮动。如果来自Photoshop的参数在[0,255]范围内,则必须首先将它们转换为[0,1]。gamma / mid参数是一个float> =0。它与Photoshop中的值匹配。如果要对RGB以及各个通道应用级别,则需要两次使用此滤镜-首先用于单个通道,然后用于所有通道。
-
GPUImageColorMatrixFilter:通过将矩阵应用于图像来变换图像的颜色
- colorMatrix:4x4矩阵,用于转换图像中的每种颜色
- 强度:每个像素新变换后的颜色替换原始颜色的程度
-
GPUImageRGBFilter:调整图像的各个RGB通道
- 红色:每个色彩通道乘以的标准化值。范围从0.0开始,默认值为1.0。
- 绿色:
- 蓝色:
-
GPUImageHueFilter:调整图像的色调
- 色调:色调角度,以度为单位。默认为90度
-
GPUImageVibranceFilter:调整图像的鲜艳度
- vibrance:要应用的振动度调整,默认设置为0.0,建议的最小/最大值分别为-1.2和1.2。
-
GPUImageWhiteBalanceFilter:调整图像的白平衡。
- temperature:调整图像的温度,单位为ºK。值4000非常凉,而7000非常暖。默认值为5000。请注意,在4000和5000之间的比例在视觉上与在5000和7000之间的比例几乎相同。
- 色调:用于调整图像的色调。值-200表示非常绿色,而200表示非常粉红色。默认值为0。
-
GPUImageToneCurveFilter:基于样条曲线为每个颜色通道调整图像的颜色。
- redControlPoints:
- greenControlPoints:
- blueControlPoints:
- rgbCompositeControlPoints:色调曲线包含一系列控制点,这些控制点定义了每个颜色分量或复合物中所有三个分量的样条曲线。这些以NSValue包裹的CGPoints的形式存储在NSArray中,标准化的X和Y坐标为0-1。默认值为(0,0),(0.5,0.5),(1,1)。
-
GPUImageHighlightShadowFilter:调整图像的阴影和高光
- 阴影:增加阴影以使阴影变淡,从0.0到1.0,默认值为0.0。
- Highlights:从1.0减少到0.0,以默认值1.0降低高光。
-
GPUImageHighlightShadowTintFilter:允许您使用颜色和强度独立地着色图像的阴影和高光
-
shadowTintColor:阴影色调RGB颜色(GPUVector4)。默认值:(
{1.0f, 0.0f, 0.0f, 1.0f}
红色)。 -
highlightTintColor:高亮色调RGB颜色(GPUVector4)。默认值:(
{0.0f, 0.0f, 1.0f, 1.0f}
蓝色)。 - shadowTintIntensity:阴影着色强度,从0.0到1.0。默认值:0.0
- highlightTintIntensity:突出显示色调强度,从0.0到1.0,默认值为0.0。
-
shadowTintColor:阴影色调RGB颜色(GPUVector4)。默认值:(
GPUImageLookupFilter:使用RGB颜色查找图像来重新映射图像中的颜色。首先,使用您喜欢的照片编辑应用程序将滤镜应用于GPUImage / framework / Resources中的lookup.png。为了使其正常工作,每个像素的颜色都不得依赖于其他像素(例如,模糊将不起作用)。如果需要更复杂的过滤器,则可以根据需要创建任意多个查找表。准备就绪后,将新的lookup.png文件用作GPUImageLookupFilter的第二个输入。
GPUImageAmatorkaFilter:基于Amatorka的Photoshop动作的照片滤镜:http ://amatorka.deviantart.com/art/Amatorka-Action-2-121069631 。如果要使用此效果,则必须将GPUImage Resources文件夹中的lookup_amatorka.png添加到应用程序包中。
GPUImageMissEtikateFilter:基于Etikate小姐的Photoshop动作的照片滤镜:http ://miss-etikate.deviantart.com/art/Photoshop-Action-15-120151961 。如果要使用此效果,则必须将GPUImage Resources文件夹中的lookup_miss_etikate.png添加到应用程序包中。
GPUImageSoftEleganceFilter:另一个基于查找的颜色重映射滤镜。如果要使用此效果,则必须将GPUImage Resources文件夹中的lookup_soft_elegance_1.png和lookup_soft_elegance_2.png添加到应用程序包中。
-
GPUImageSkinToneFilter:肤色调整滤镜,可影响浅色肤色的唯一范围,并相应地调整粉红色/绿色或粉红色/橙色范围。默认值针对白皙的皮肤,但可以根据需要进行调整。
- skinToneAdjust:调整肤色的量。默认值:0.0,建议的最小/最大值:分别为-0.3和0.3。
- skinHue:要检测的皮肤色调。默认值:0.05(白皙至泛红皮肤)。
- skinHueThreshold:皮肤色调的变化量。默认值:40.0。
- maxHueShift:允许的最大色相偏移量。默认值:0.25
- maxSaturationShift =要移动的最大饱和量(使用橙色时)。默认值:0.4
-
upperSkinToneColor =
GPUImageSkinToneUpperColorGreen
或GPUImageSkinToneUpperColorOrange
GPUImageColorInvertFilter:反转图像的颜色
GPUImageGrayscaleFilter:将图像转换为灰度(饱和度滤镜的实现速度稍快,但无法更改颜色贡献)
-
GPUImageMonochromeFilter:根据每个像素的亮度,将图像转换为单色版本
- strength:特定颜色替换正常图像颜色的程度(0.0-1.0,默认值为1.0)
- color:用作效果基础的颜色,默认为(0.6,0.45,0.3,1.0)。
-
GPUImageFalseColorFilter:使用图像的亮度在两种用户指定的颜色之间进行混合
- firstColor:第一种和第二种颜色分别指定什么颜色替代图像的暗区和亮区。默认值为(0.0,0.0,0.5)和(1.0,0.0,0.0)。
- secondColor:
-
GPUImageHazeFilter:用于添加或删除雾度(类似于UV滤镜)
- distance:所应用颜色的强度。默认值为0。最佳值为-.3到.3。
- 斜率:颜色变化的量。默认值为0。最佳值为-.3到.3。
-
GPUImageSepiaFilter:简单的棕褐色调滤镜
- 强度:棕褐色替换正常图像颜色的程度(0.0-1.0,默认值为1.0)
-
GPUImageOpacityFilter:调整传入图像的Alpha通道
- opacity:将每个像素的输入Alpha通道乘以(0.0-1.0,默认值为1.0)的值
-
GPUImageSolidColorGenerator:这将输出生成的纯色图像。您需要使用-forceProcessingAtSize定义图像大小:
- color:用于填充图像的颜色,采用四部分格式。
-
GPUImageLuminanceThresholdFilter:亮度高于阈值的像素将显示为白色,而低于阈值的像素将为黑色
- threshold:亮度阈值,从0.0到1.0,默认值为0.5
-
GPUImageAdaptiveThresholdFilter:确定像素周围的局部亮度,如果像素低于该局部亮度,则将其变为黑色,如果高于该像素,则将其变为白色。这对于在变化的光照条件下挑选文本很有用。
- blurRadiusInPixels:背景平均模糊半径(以像素为单位)的倍数,默认为4。
-
GPUImageAverageLuminanceThresholdFilter:这将应用阈值操作,其中将根据场景的平均亮度连续调整阈值。
- thresholdMultiplier:这是平均亮度将被乘以达到最终使用阈值的一个因素。默认情况下,该值为1.0。
-
GPUImageHistogramFilter:这将分析传入的图像并创建一个输出直方图,其输出每种颜色值的频率。该滤波器的输出是一个3像素高,256像素宽的图像,其中心(垂直)像素包含与发生各种颜色值的频率相对应的像素。每个颜色值占据256个宽度位置之一,从左侧的0到右侧的255。可以为单个颜色通道(kGPUImageHistogramRed,kGPUImageHistogramGreen,kGPUImageHistogramBlue),图像亮度(kGPUImageHistogramLuminance)或一次为所有三个颜色通道(kGPUImageHistogramRGB)生成此直方图。
- downsamplingFactor:这不是对每个像素进行采样,而是决定要对图像的哪个部分进行采样。默认情况下,它是16,最小值为1。这是避免饱和直方图所必需的,直方图在每种颜色值变得过载之前只能记录256个像素。
GPUImageHistogramGenerator:这是一个特殊的过滤器,主要用于与GPUImageHistogramFilter一起使用。它生成由GPUImageHistogramFilter生成的颜色直方图的输出表示形式,但可以重新用于显示其他类型的值。它获取图像并查看中心(垂直)像素。然后,它将RGB分量的数值绘制在输出纹理的单独的彩色图形中。您可能需要为此过滤器设置一个大小,以使其输出可见。
GPUImageAverageColor:这通过对图像中每个像素的RGBA分量求平均值,来处理输入图像并确定场景的平均颜色。约简过程用于在GPU上逐步对源图像进行下采样,然后在CPU上进行短暂的平均计算。该过滤器的输出毫无意义,但是您需要将colorAverageProcessingFinishedBlock属性设置为一个包含四个颜色分量和一个帧时间并对它们执行某些操作的块。
GPUImageLuminosity:与GPUImageAverageColor一样,这会将图像减小到其平均亮度。您需要设置luminosityProcessingFinishedBlock来处理此过滤器的输出,该过滤器仅返回一个发光度值和一个帧时间。
-
GPUImageChromaKeyFilter:对于图像中的给定颜色,将alpha通道设置为0。这与GPUImageChromaKeyBlendFilter相似,只是不将第二个图像混合为匹配的颜色,而不会在第二个图像中取而代之颜色透明。
- thresholdSensitivity:颜色匹配需要与要替换的目标颜色之间的接近程度(默认值为0.4)
- 平滑:颜色匹配的平滑程度(默认值为0.1)
图像处理
-
GPUImageTransformFilter:这会将任意2D或3D变换应用于图像
- affineTransform:这需要一个CGAffineTransform来调整二维图像
- transform3D:这需要一个CATransform3D来处理3-D图像
- ignoreAspectRatio:默认情况下,将保持变换图像的纵横比,但是可以将其设置为YES,以使变换与纵横比无关
-
GPUImageCropFilter:将图像裁剪到特定区域,然后仅将该区域传递到滤镜的下一个阶段
- cropRegion:要裁剪出图像的矩形区域,将其标准化为0.0-1.0的坐标。(0.0,0.0)位置在图像的左上方。
GPUImageLanczosResamplingFilter:这使您可以使用Lanczos重采样对图像进行上采样或下采样,其质量明显优于标准线性或三线性插值。只需使用-forceProcessingAtSize:即可设置过滤器的目标输出分辨率,然后将针对该新大小重新采样图像。
-
GPUImageSharpenFilter:锐化图像
- 清晰度:要应用的清晰度调整(-4.0-4.0,默认值为0.0)
-
GPUImageUnsharpMaskFilter:应用不清晰的蒙版
- blurRadiusInPixels:基础高斯模糊的模糊半径。默认值为4.0。
- 强度:锐化的强度,从在多达0.0,与1.0的默认
-
GPUImageGaussianBlurFilter:硬件优化的可变半径高斯模糊
- texelSpacingMultiplier:像素之间的间距的乘数,范围从0.0开始,默认值为1.0。调整此值可能会稍微增加模糊强度,但会在结果中引入伪像。强烈建议先使用其他参数,然后再触摸此参数。
- blurRadiusInPixels:用于模糊的半径(以像素为单位),默认值为2.0。这将调整高斯分布函数中的sigma变量。
- blurRadiusAsFractionOfImageWidth:
- blurRadiusAsFractionOfImageHeight:设置这些属性将允许模糊半径随图像的大小缩放
- blurPasses:顺序模糊传入图像的次数。通过的次数越多,过滤器的速度就越慢。
-
GPUImageBoxBlurFilter:硬件优化的可变半径框模糊
- texelSpacingMultiplier:像素之间的间距的乘数,范围从0.0开始,默认值为1.0。调整此值可能会稍微增加模糊强度,但会在结果中引入伪像。强烈建议先使用其他参数,然后再触摸此参数。
- blurRadiusInPixels:用于模糊的半径(以像素为单位),默认值为2.0。这将调整高斯分布函数中的sigma变量。
- blurRadiusAsFractionOfImageWidth:
- blurRadiusAsFractionOfImageHeight:设置这些属性将允许模糊半径随图像的大小缩放
- blurPasses:顺序模糊传入图像的次数。通过的次数越多,过滤器的速度就越慢。
-
GPUImageSingleComponentGaussianBlurFilter:对GPUImageGaussianBlurFilter的修改,仅对红色组件起作用
- texelSpacingMultiplier:像素之间的间距的乘数,范围从0.0开始,默认值为1.0。调整此值可能会稍微增加模糊强度,但会在结果中引入伪像。强烈建议先使用其他参数,然后再触摸此参数。
- blurRadiusInPixels:用于模糊的半径(以像素为单位),默认值为2.0。这将调整高斯分布函数中的sigma变量。
- blurRadiusAsFractionOfImageWidth:
- blurRadiusAsFractionOfImageHeight:设置这些属性将允许模糊半径随图像的大小缩放
- blurPasses:顺序模糊传入图像的次数。通过的次数越多,过滤器的速度就越慢。
-
GPUImageGaussianSelectiveBlurFilter:高斯模糊,可将焦点保留在圆形区域内
- blurRadiusInPixels:用于模糊的半径(以像素为单位),默认值为5.0。这将调整高斯分布函数中的sigma变量。
- excludeCircleRadius:从模糊中排除的圆形区域的半径
- excludeCirclePoint:从模糊中排除的圆形区域的中心
- excludeBlurSize:模糊部分和透明圆之间的区域大小
- aspectRatio:图像的纵横比,用于调整对焦区域的圆形度。默认情况下,它与图像的纵横比匹配,但是您可以覆盖此值。
-
GPUImageGaussianBlurPositionFilter:GPUImageGaussianSelectiveBlurFilter的逆函数,仅在特定圆圈内应用模糊
- blurSize:模糊大小的倍数,范围从0.0开始,默认为1.0
- blurCenter:模糊的中心,默认为0.5、0.5
- blurRadius:模糊的半径,默认为1.0
-
GPUImageiOSBlurFilter:尝试在控制中心等地方复制iOS 7上使用的背景模糊。
- blurRadiusInPixels:用于模糊的半径(以像素为单位),默认值为12.0。这将调整高斯分布函数中的sigma变量。
- 饱和度:饱和度范围从0.0(完全饱和)到2.0(最大饱和度),正常水平为0.8
- 下采样:下采样然后上采样传入图像的程度,以最小化高斯模糊内的计算,默认值为4.0。
GPUImageMedianFilter:获取3x3区域中三个颜色分量的中值
-
GPUImageBilateralFilter:双向模糊,它尝试在保留锐利边缘的同时模糊相似的颜色值
- texelSpacingMultiplier:texel读取之间的间隔的乘数,范围从0.0开始,默认为4.0
- distanceNormalizationFactor:中心颜色和样本颜色之间的距离的归一化因子,默认值为8.0。
-
GPUImageTiltShiftFilter:模拟的倾斜移位镜头效果
- blurRadiusInPixels:基础模糊的半径,以像素为单位。默认情况下是7.0。
- topFocusLevel:图像中对焦区域顶部的标准化位置,此值应小于bottomFocusLevel,默认值为0.4
- bottomFocusLevel:图像中对焦区域底部的标准化位置,此值应高于topFocusLevel,默认值为0.6
- focusFallOffRate:图像从对焦区域模糊的速率,默认为0.2
-
GPUImage3x3ConvolutionFilter:对图像运行3x3卷积内核
- convolutionKernel:卷积内核是一个3x3的值矩阵,适用于该像素及其周围的8个像素。矩阵以行优先顺序指定,左上像素为one.one,右下像素为three.three。如果矩阵中的值之和不等于1.0,则图像可能变亮或变暗。
-
GPUImageSobelEdgeDetectionFilter:Sobel边缘检测,边缘以白色突出显示
- texelWidth:
- texelHeight:这些参数影响检测到的边缘的可见性
- edgeStrength:调整滤镜的动态范围。较高的值会导致边缘更强,但会饱和强度颜色空间。默认值为1.0。
-
GPUImagePrewittEdgeDetectionFilter:Prewitt边缘检测,边缘以白色突出显示
- texelWidth:
- texelHeight:这些参数影响检测到的边缘的可见性
- edgeStrength:调整滤镜的动态范围。较高的值会导致边缘更强,但会饱和强度颜色空间。默认值为1.0。
-
GPUImageThresholdEdgeDetectionFilter:执行Sobel边缘检测,但是应用阈值而不是给出逐渐的强度值
- texelWidth:
- texelHeight:这些参数影响检测到的边缘的可见性
- edgeStrength:调整滤镜的动态范围。较高的值会导致边缘更强,但会饱和强度颜色空间。默认值为1.0。
- threshold:高于此阈值的任何边缘将为黑色,低于白色的任何边缘。范围从0.0到1.0,默认值为0.8
-
GPUImageCannyEdgeDetectionFilter:这使用完整的Canny流程突出显示一像素宽的边缘
- texelWidth:
- texelHeight:这些参数影响检测到的边缘的可见性
- blurRadiusInPixels:高斯模糊的基础模糊半径。默认值为2.0。
- blurTexelSpacingMultiplier:基础的模糊纹理像素间距乘数。默认值为1.0。
- upperThreshold:任何梯度幅度大于此阈值的边都将通过并显示在最终结果中。默认值为0.4。
- lowerThreshold:任何梯度幅度低于此阈值的边将失败,并从最终结果中删除。默认值为0.1。
-
GPUImageHarrisCornerDetectionFilter:在输入图像上运行哈里斯拐角检测算法,并生成一个图像,这些拐角点为白色像素,其他所有像素为黑色。可以设置cornersDetectedBlock,并且在回调中将为您提供您想要执行的所有其他操作的角列表(以标准化的0..1 X,Y坐标表示)。
- blurRadiusInPixels:基础高斯模糊的半径。默认值为2.0。
- 敏感度:一个内部比例因子,用于调整在滤镜中生成的边角图的动态范围。默认值为5.0。
- threshold:检测到某个点作为拐角的阈值。根据尺寸,照明条件和iOS设备摄像头类型的不同,这可能会有很大的不同,因此可能需要一些试验才能找到适合您的情况。默认值为0.20。
-
GPUImageNobleCornerDetectionFilter:在哈里斯拐角检测器上运行Noble变体。它的行为与上述Harris检测器的行为相同。
- blurRadiusInPixels:基础高斯模糊的半径。默认值为2.0。
- 敏感度:一个内部比例因子,用于调整在滤镜中生成的边角图的动态范围。默认值为5.0。
- threshold:检测到某个点作为拐角的阈值。根据尺寸,照明条件和iOS设备摄像头类型的不同,这可能会有很大的不同,因此可能需要一些试验才能找到适合您的情况。默认值为0.2。
-
GPUImageShiTomasiCornerDetectionFilter:运行Shi-Tomasi特征检测器。它的行为与上述Harris检测器的行为相同。
- blurRadiusInPixels:基础高斯模糊的半径。默认值为2.0。
- 敏感度:一个内部比例因子,用于调整在滤镜中生成的边角图的动态范围。默认值为1.5。
- threshold:检测到某个点作为拐角的阈值。根据尺寸,照明条件和iOS设备摄像头类型的不同,这可能会有很大的不同,因此可能需要一些试验才能找到适合您的情况。默认值为0.2。
GPUImageNonMaximumSuppressionFilter:当前仅用作哈里斯角点检测滤镜的一部分,它将对每个像素周围的一个1像素框进行采样,并确定中心像素的红色通道在该区域中是否最大。如果是,它将保持不变。如果不是,则将所有颜色分量都设置为0。
GPUImageXYDerivativeFilter:Harris角点检测过滤器中的一个内部组件,它计算该像素左右像素之间的平方差,该像素上下两个像素之间的平方差以及这两个差的乘积。
-
GPUImageCrosshairGenerator:这会在图像上绘制一系列十字准线,最常用于识别机器视觉功能。它不像其他过滤器那样获取标准图像,而是采用-renderCrosshairsFromArray:count:方法中的一系列点来进行实际绘制。您将需要强制此过滤器以所需的特定输出大小进行渲染。
- crosshairWidth:要在屏幕上绘制的十字线的宽度(以像素为单位)。
GPUImageDilationFilter:这将执行图像放大操作,其中将矩形邻域中红色通道的最大强度用作此像素的强度。初始化时指定要采样的矩形区域的半径,范围为1-4个像素。这旨在用于灰度图像,并扩展明亮的区域。
GPUImageRGBDilationFilter:与GPUImageDilationFilter相同,除了它作用于所有颜色通道,而不仅仅是红色通道。
GPUImageErosionFilter:这将执行图像腐蚀操作,其中将矩形邻域中红色通道的最小强度用作此像素的强度。初始化时指定要采样的矩形区域的半径,范围为1-4个像素。这旨在用于灰度图像,并扩展暗区。
GPUImageRGBErosionFilter:与GPUImageErosionFilter相同,除了它作用于所有颜色通道,而不仅仅是红色通道。
GPUImageOpeningFilter:这会在图像的红色通道上执行侵蚀,然后进行相同半径的扩张。半径在初始化时设置,范围为1-4个像素。这样可以滤除较小的明亮区域。
GPUImageRGBOpeningFilter:与GPUImageOpeningFilter相同,除了它作用于所有颜色通道,而不仅仅是红色通道。
GPUImageClosingFilter:在图像的红色通道上执行膨胀,然后进行相同半径的腐蚀。半径在初始化时设置,范围为1-4个像素。这样可以滤除较小的暗区。
GPUImageRGBClosingFilter:与GPUImageClosingFilter相同,除了它作用于所有颜色通道,而不仅仅是红色通道。
GPUImageLocalBinaryPatternFilter:这将对周围的8个像素的红色通道和中央像素的红色通道的强度进行比较,将比较结果编码为成为该像素强度的位串。最低有效位是右上比较,逆时针结束在最高有效位的右边比较。
-
GPUImageLowPassFilter:这将低通滤波器应用于传入的视频帧。基本上,这会累加前一帧和当前帧的加权滚动平均值,以用于它们的降噪,添加运动模糊或用于创建高通滤波器。
- filterStrength:这控制将先前累积的帧与当前帧融合的程度。取值范围是0.0到1.0,默认值为0.5。
-
GPUImageHighPassFilter:这会将高通滤波器应用于传入的视频帧。这是低通滤波器的反函数,显示了当前帧与先前帧的加权滚动平均值之间的差异。这对于运动检测最有用。
- filterStrength:此选项控制将先前累积的帧进行混合然后从当前帧中减去的程度。取值范围是0.0到1.0,默认值为0.5。
-
GPUImageMotionDetector:这是基于高通滤波器的运动检测器。设置motionDetectionBlock,并在每个传入帧上为您提供场景中任何检测到的运动的质心(在标准化的X,Y坐标下)以及场景的运动强度。
- lowPassFilterStrength:这控制在后台使用的低通滤波器的强度,以建立与输入帧进行比较的基准。取值范围是0.0到1.0,默认值为0.5。
-
GPUImageHoughTransformLineDetector:使用Hough变换到平行坐标空间来检测图像中的线。这种方法完全基于布尔诺工业大学Graph @ FIT研究小组开发的PC生产线工艺,并在其出版物中进行了描述:M.Dubská,J。Havel和A. Herout。使用平行坐标和OpenGL实时检测线。SCCG 2011年会议论文集,布拉迪斯拉发,SK,第1。7(http://medusa.fit.vutbr.cz/public/data/papers/2011-SCCG-Dubska-Real-Time-Line-Detection-Using-PC-and-OpenGL.pdf)和M.Dubská,J Havel和A. Herout PClines —使用平行坐标的线检测。2011 IEEE计算机视觉和模式识别会议(CVPR),第1页。1489- 1494(http://medusa.fit.vutbr.cz/public/data/papers/2011-CVPR-Dubska-PClines.pdf)。
- edgeThreshold:阈值,对于该阈值,检测到点属于用于确定线的边缘。默认值为0.9。
- lineDetectionThreshold:一个阈值,其最大值被检测为属于平行坐标空间中的一条线。默认值为0.20。
- linesDetectedBlock:通常在每个处理的帧上,在检测到行时调用此块。传入包含m,b对(y = mx + b)中的归一化斜率和截距的AC数组以及检测到的行数和视频帧的当前时间戳。
-
GPUImageLineGenerator:一个帮助程序类,可生成可以覆盖场景的线条。可以使用-setLineColorRed:green:blue来调整这些行的颜色:
- lineWidth:线的宽度(以像素为单位),默认值为1.0。
-
GPUImageMotionBlurFilter:对图像应用定向运动模糊
- blurSize:模糊大小的乘数,范围从0.0开始,默认为1.0
- blurAngle:模糊的角度方向,以度为单位。默认为0度。
-
GPUImageZoomBlurFilter:将定向运动模糊应用于图像
- blurSize:模糊大小的乘数,范围从0.0开始,默认为1.0
- blurCenter:标准化的模糊中心。默认为(0.5,0.5)
混合模式
-
GPUImageChromaKeyBlendFilter:选择性地将第一张图片中的颜色替换为第二张图片
- thresholdSensitivity:颜色匹配需要与要替换的目标颜色之间的接近程度(默认值为0.4)
- 平滑:颜色匹配的平滑程度(默认值为0.1)
-
GPUImageDissolveBlendFilter:应用两个图像的溶解混合
- mix:第二张图片覆盖第一张图片的程度(0.0-1.0,默认值为0.5)
GPUImageMultiplyBlendFilter:应用两个图像的乘法混合
GPUImageAddBlendFilter:应用两个图像的加法混合
GPUImageSubtractBlendFilter:应用两个图像的减法混合
GPUImageDivideBlendFilter:应用两个图像的除法混合
GPUImageOverlayBlendFilter:应用两个图像的叠加混合
GPUImageDarkenBlendFilter:通过获取图像之间每个颜色分量的最小值来融合两个图像
GPUImageLightenBlendFilter:通过获取图像之间每个颜色分量的最大值来融合两个图像
GPUImageColorBurnBlendFilter:应用两个图像的颜色加深混合
GPUImageColorDodgeBlendFilter:应用两个图像的颜色减淡混合
GPUImageScreenBlendFilter:应用两个图像的屏幕混合
GPUImageExclusionBlendFilter:应用两个图像的排除混合
GPUImageDifferenceBlendFilter:应用两个图像的差异混合
GPUImageHardLightBlendFilter:应用两个图像的强光混合
GPUImageSoftLightBlendFilter:应用两个图像的柔光混合
-
GPUImageAlphaBlendFilter:根据第二个图像的Alpha通道在第二个图像上混合第二个图像
- mix:第二张图片覆盖第一张图片的程度(0.0-1.0,默认值为1.0)
GPUImageSourceOverBlendFilter:将源应用于两个图像的混合
GPUImageColorBurnBlendFilter:应用两个图像的颜色加深混合
GPUImageColorDodgeBlendFilter:应用两个图像的颜色减淡混合
GPUImageNormalBlendFilter:应用两个图像的普通混合
GPUImageColorBlendFilter:应用两个图像的颜色混合
GPUImageHueBlendFilter:应用两个图像的色调混合
GPUImageSaturationBlendFilter:应用两个图像的饱和度混合
GPUImageLuminosityBlendFilter:应用两个图像的亮度混合
GPUImageLinearBurnBlendFilter:应用两个图像的线性刻录混合
-
GPUImagePoissonBlendFilter:应用两个图像的泊松混合
- mix:混合范围从0.0(仅图像1)到1.0(仅图像2渐变),以1.0为正常水平
- numIterations:传播渐变的次数。如果您想获得接近收敛的效果,则可以将其提高到100甚至1000。是的,这会很慢。
GPUImageMaskFilter:使用另一图像遮罩一个图像
视觉效果
-
GPUImagePixellateFilter:对图像或视频应用像素化效果
- fractionalWidthOfAPixel:像素的大小,以图像的宽度和高度的分数为单位(0.0-1.0,默认为0.05)
-
GPUImagePolarPixellateFilter:基于极坐标而不是笛卡尔坐标,对图像或视频应用像素化效果
- center:要应用像素化的中心,默认为(0.5,0.5)
- pixelSize:小数像素大小,分为宽度和高度分量。默认值为(0.05,0.05)
-
GPUImagePolkaDotFilter:将图像分成规则网格内的彩色点
- fractionalWidthOfAPixel:点的大小,以图像的宽度和高度的分数表示(0.0-1.0,默认为0.05)
- dotScaling:点在每个网格空间中所占的比例从0.0到1.0,默认值为0.9。
-
GPUImageHalftoneFilter:对图像应用半色调效果,例如新闻打印
- fractionalWidthOfAPixel:半色调点的大小,以图像的宽度和高度的分数为单位(0.0-1.0,默认为0.05)
-
GPUImageCrosshatchFilter:这会将图像转换为黑白交叉阴影线图案
- crossHatchSpacing:用作交叉阴影线间距的图像的分数宽度。默认值为0.03。
- lineWidth:剖面线的相对宽度。默认值为0.003。
-
GPUImageSketchFilter:将视频转换为草图。这只是颜色反转的Sobel边缘检测滤镜
- texelWidth:
- texelHeight:这些参数影响检测到的边缘的可见性
- edgeStrength:调整滤镜的动态范围。较高的值会导致边缘更强,但会饱和强度颜色空间。默认值为1.0。
-
GPUImageThresholdSketchFilter:与草图过滤器相同,仅对边缘进行阈值处理,而不是灰度
- texelWidth:
- texelHeight:这些参数影响检测到的边缘的可见性
- edgeStrength:调整滤镜的动态范围。较高的值会导致边缘更强,但会饱和强度颜色空间。默认值为1.0。
- threshold:高于此阈值的任何边缘将为黑色,低于白色的任何边缘。范围从0.0到1.0,默认值为0.8
-
GPUImageToonFilter:它使用Sobel边缘检测在对象周围放置黑色边框,然后对图像中存在的颜色进行量化,以使图像具有卡通般的质量。
- texelWidth:
- texelHeight:这些参数影响检测到的边缘的可见性
- 阈值:边缘检测的灵敏度,值越小灵敏度越高。范围从0.0到1.0,默认值为0.2
- quantizationLevels:要在最终图像中表示的色阶数。默认值为10.0
-
GPUImageSmoothToonFilter:这使用与GPUImageToonFilter相似的过程,只是它在香椿效果之前带有高斯模糊以平滑噪声。
- texelWidth:
- texelHeight:这些参数影响检测到的边缘的可见性
- blurRadiusInPixels:基础高斯模糊的半径。默认值为2.0。
- 阈值:边缘检测的灵敏度,值越小灵敏度越高。范围从0.0到1.0,默认值为0.2
- quantizationLevels:要在最终图像中表示的色阶数。默认值为10.0
-
GPUImageEmbossFilter:在图像上施加压纹效果
- 强度:压花强度,从0.0到4.0,以1.0为正常水平
-
GPUImagePosterizeFilter:这将颜色动态范围减小到指定的步骤数,从而导致图像像卡通一样简单的阴影。
- colorLevels:减少图像空间的颜色级别数。范围是1到256,默认值为10。
-
GPUImageSwirlFilter:在图像上创建漩涡形失真
- radius:从中心开始应用变形的半径,默认值为0.5
- center:图像中心(在0到1.0的标准化坐标中)要围绕其扭曲,默认值为(0.5,0.5)
- angle:应用于图像的扭曲量,默认值为1.0
-
GPUImageBulgeDistortionFilter:在图像上创建凸出的失真
- radius:从中心开始应用变形的半径,默认值为0.25
- center:要变形的图像中心(在0-1.0的标准化坐标中),默认值为(0.5,0.5)
- scale:要应用的变形量,从-1.0到1.0,默认值为0.5
-
GPUImagePinchDistortionFilter:创建图像的少量变形
- radius:从中心开始应用变形的半径,默认值为1.0
- center:要变形的图像中心(在0-1.0的标准化坐标中),默认值为(0.5,0.5)
- scale:要应用的变形量,从-2.0到2.0,默认值为1.0
-
GPUImageStretchDistortionFilter:创建图像的拉伸变形
- center:要变形的图像中心(在0-1.0的标准化坐标中),默认值为(0.5,0.5)
-
GPUImageSphereRefractionFilter:模拟通过玻璃球体的折射
- center:围绕其施加变形的中心,默认值为(0.5,0.5)
- radius:变形的半径,范围从0.0到1.0,默认值为0.25
- fractionIndex:球体的折射率,默认值为0.71
-
GPUImageGlassSphereFilter:与GPUImageSphereRefractionFilter相同,仅图像未反转,玻璃的边缘有少许磨砂
- center:围绕其施加变形的中心,默认值为(0.5,0.5)
- radius:变形的半径,范围从0.0到1.0,默认值为0.25
- fractionIndex:球体的折射率,默认值为0.71
-
GPUImageVignetteFilter:执行渐晕效果,使边缘的图像淡化
- vignetteCenter:小插图的中心,以tex坐标(CGPoint)为单位,默认值为0.5、0.5
- vignetteColor:用于小插图(GPUVector3)的颜色,默认为黑色
- vignetteStart:距小插图效果开始的中心的标准化距离,默认值为0.5
- vignetteEnd:距小插图效果结束的中心的标准化距离,默认值为0.75
-
GPUImageKuwaharaFilter:从Kyprianidis等人的作品中提取的Kuwahara图像抽象。等 在GPU Pro系列中的出版物“ GPU上的各向异性Kuwahara滤波”中。这会产生类似油画的图像,但是在计算上非常昂贵,因此在iPad 2上渲染框架可能需要几秒钟的时间。这可能最适合用于静止图像。
- radius:以整数指定在应用滤镜时要测试的中心像素以外的像素数,默认值为4。较高的值会创建更抽象的图像,但会花费更多的处理时间。
GPUImageKuwaharaRadius3Filter:Kuwahara滤镜的修改版,已优化为仅在三个像素的半径上工作
-
GPUImagePerlinNoiseFilter:生成充满Perlin噪点的图像
- colorStart:
- colorFinish:产生的噪点的颜色范围
- 标度:产生的噪声的标度
GPUImageCGAColorspaceFilter:模拟CGA监视器的颜色空间
-
GPUImageMosaicFilter:此滤镜采用输入图块集,图块的亮度必须上升。它查看输入图像,并根据输入图块的亮度用输入图块替换每个显示图块。这个想法是复制在其他应用程序中看到的ASCII视频过滤器,但是tileet可以是任何东西。
- inputTileSize:
- numTiles:
- displayTileSize:
- colorOn:
-
GPUImageJFAVoronoiFilter:生成Voronoi贴图,以供以后使用。
- sizeInPixels:各个元素的大小
-
GPUImageVoronoiConsumerFilter:接收Voronoi映射,并使用该映射过滤传入的图像。
- sizeInPixels:各个元素的大小