我想使用GPUimage框架将图像转换为黑白而非灰度
答案 0 :(得分:7)
GPUImage框架中有许多过滤器可将源图像处理为二进制b& w。
以下是GPUImage框架主页中带有复制粘贴说明的过滤器列表:
GPUImageMonochromeFilter :根据每个像素的亮度将图像转换为单色版本
GPUImageLuminanceThresholdFilter :亮度高于阈值的像素将会 显示为白色,下面的那些将是黑色
GPUImageAdaptiveThresholdFilter :确定像素周围的局部亮度,如果低于该局部亮度则将像素变为黑色,如果高于此值则变为白色。这对于在不同光照条件下挑选文本非常有用。
GPUImageAverageLuminanceThresholdFilter :这会应用阈值操作,根据场景的平均亮度不断调整阈值。
答案 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];