大佬教程收集整理的这篇文章主要介绍了用于OCR的iOS UIImage二值化 – 处理具有不同亮度的图像,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在应用OCR之前,我使用GPUImage code like this对输入图像进行二值化.
但是,阈值不包括我得到的图像范围.
查看输入图像中的两个样本:
我不能用相同的阈值处理两者.
低价值似乎随后很好,第一个价值更高.
第二个图像似乎特别复杂,因为无论我为阈值设置了什么值,我都不会将所有字符都正确地二进制化.另一方面,我的C二值化例程似乎做得对,但我没有太多的见解去尝试像GPUImage中的简单阈值.
我该怎么处理?
更新:
我尝试使用GPUImageAverageLuminanCEThresholdFilter,默认乘数= 1.它适用于第一个图像,但第二个图像仍然是问题.
二值化的一些更多样化的输入:
更新II:
在经过this answer by Brad之后,尝试了GPUImageAdaptiveThresholdFilter(也包含了GPUImagePicture,因为之前我只在UIImage上应用它).
有了这个,我得到了二次图像二值化完美.然而,当我设置模糊大小为3.0时,第一个似乎在二值化后有很多噪音. OCR导致添加额外字符.使用较低的模糊大小值,第二个图像会失去精度.
这里是:
+(UIImage *)binarize : (UIImage *) sourceImage { UIImage * grayScaledImg = [self toGrayscale:sourceImage]; GPUImagePicture *imagesource = [[GPUImagePicture alloc] initWithImage:grayScaledImg]; GPUImageAdaptiveThresholdFilter *stillImageFilter = [[GPUImageAdaptiveThresholdFilter alloc] init]; stillImageFilter.blurSize = 3.0; [imagesource addTarget:stillImageFilter]; [imagesource processImage]; UIImage *imageWithAppliedThreshold = [stillImageFilter imageFromCurrentlyProcessedOutput]; // UIImage *destImage = [thresholdFilter imageByFilteringImage:grayScaledImg]; return imageWithAppliedThreshold; }
以上是大佬教程为你收集整理的用于OCR的iOS UIImage二值化 – 处理具有不同亮度的图像全部内容,希望文章能够帮你解决用于OCR的iOS UIImage二值化 – 处理具有不同亮度的图像所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。