我想使用GPUImage将图像转换为黑白图像

时间:2014-05-18 07:17:45

标签: ios objective-c gpuimage

我想使用GPUimage框架将图像转换为黑白而非灰度

2 个答案:

答案 0 :(得分:7)

GPUImage框架中有许多过滤器可将源图像处理为二进制b& w。

以下是GPUImage框架主页中带有复制粘贴说明的过滤器列表:

  • GPUImageMonochromeFilter :根据每个像素的亮度将图像转换为单色版本

    • 强度:特定颜色替换正常图像颜色的程度(0.0 - 1.0,默认值为1.0)
    • color :用作效果基础的颜色,默认为(0.6,0.45,0.3,1.0)。
  • GPUImageLuminanceThresholdFilter :亮度高于阈值的像素将会 显示为白色,下面的那些将是黑色

    • 阈值:亮度阈值,从0.0到1.0,默认值为0.5
  • GPUImageAdaptiveThresholdFilter :确定像素周围的局部亮度,如果低于该局部亮度则将像素变为黑色,如果高于此值则变为白色。这对于在不同光照条件下挑选文本非常有用。

    • blurRadiusInPixels :背景平均模糊半径的乘数,以像素为单位,默认值为4.
  • GPUImageAverageLuminanceThresholdFilter :这会应用阈值操作,根据场景的平均亮度不断调整阈值。

    • thresholdMultiplier :这是一个平均亮度乘以的因子,以达到使用的最终阈值。默认情况下,这是1.0。

答案 1 :(得分:3)

UIImage *inputImage = [UIImage imageNamed:@"Lambeau.jpg"];

GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage];
GPUImageGrayscaleFilter *grayScaleFilter = [[GPUImageGrayscaleFilter alloc] init];

[stillImageSource addTarget:grayScaleFilter];
[stillImageFilter useNextFrameForImageCapture]
[stillImageSource processImage];

UIImage *currentFilteredVideoFrame = [grayScaleFilter imageFromCurrentFramebuffer];