如何在iOS上使用OpenCV对CGImage进行二值化?

Dan*_*ani 0 iphone opencv image-processing ios ios5

在我的iOS项目中,我有一个RGB的CGImage,我想要二值化(转换为黑白).我想用OpenCV来做这件事,但我是OpenCV的新手.我找到了一本关于OpenCV的书,但它并不适用于iPhone.

如何在iOS上使用OpenCV对这样的图像进行二值化?

Bra*_*son 7

如果您不想在iOS项目中设置OpenCV,我的开源GPUImage框架中有两个阈值过滤器用于图像二值化,一个简单的阈值和一个基于像素附近的局部亮度的自适应阈值.

您可以对图像应用简单阈值,然后使用如下代码提取生成的二值化UIImage:

UIImage *inputImage = [UIImage imageNamed:@"inputimage.png"];    
GPUImageLuminanceThresholdFilter *thresholdFilter = [[GPUImageLuminanceThresholdFilter alloc] init];
thresholdFilter.threshold = 0.5;
UIImage *thresholdFilter = [thresholdFilter imageByFilteringImage:inputImage];
Run Code Online (Sandbox Code Playgroud)

(如果您的应用程序中没有使用ARC,请释放上述过滤器)

如果您希望将此图像显示在屏幕上,则可以将阈值输出发送到GPUImageView.如果您愿意,您还可以使用这些过滤器处理实时视频,因为它们完全在GPU上运行.