How do I binarize a CGImage using OpenCV on iOS?
在我的iOS项目中,我想对RGB的CGImage进行二值化(转换为黑白)。 我想使用OpenCV来做到这一点,但是我是OpenCV的新手。 我找到了一本关于OpenCV的书,但它不是针对iPhone的。
如何在iOS上使用OpenCV对图像进行二值化处理?
如果您不想在iOS项目中设置OpenCV,则我的开源GPUImage框架中有两个用于对图像进行二值化的阈值过滤器,一个简单的阈值和一个基于像素附近局部亮度的自适应阈值过滤器。
您可以对图像应用简单的阈值,然后使用类似以下代码的代码提取结果二值化的UIImage:
1 2 3 4 | UIImage *inputImage = [UIImage imageNamed:@"inputimage.png"]; GPUImageLuminanceThresholdFilter *thresholdFilter = [[GPUImageLuminanceThresholdFilter alloc] init]; thresholdFilter.threshold = 0.5; UIImage *thresholdFilter = [thresholdFilter imageByFilteringImage:inputImage]; |
(如果您的应用程序中未使用ARC,请释放上述过滤器)
如果您希望将此图像显示在屏幕上,则可以将阈值输出发送到GPUImageView。如果需要,您还可以使用这些过滤器处理实时视频,因为它们完全在GPU上运行。
以
1 2 3 4 5 | double cv::threshold(const cv::Mat& src, cv::Mat& dst, double thresh, double maxVal, int thresholdType) |
本示例使用OpenCV的C接口将图像转换为黑白图像。
您想要做的是删除低变化率,而保留高变化率,这是一个高通滤波器。我只有音频信号处理方面的经验,所以我真的不知道可以使用哪些选项,但这就??是我要寻找的方向。