1.使用TesseractOCRiOS
使用pod添加依赖库
pod 'TesseractOCRiOS', '~> 4.0.0'
复制代码
使用TesseractOCRiOS要注意,在导入TesseractOCRiOS的类的控制器需要将它改为.mm文件
使用是导入头文件
#import <TesseractOCR/TesseractOCR.h>
复制代码
//利用TesseractOCR识别文字
- (void)tesseractRecognizeImage:(UIImage *)image {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
G8Tesseract *tesseract = [[G8Tesseract alloc] initWithLanguage:@"eng+chi_sim"];
//模式
tesseract.engineMode = G8OCREngineModeTesseractOnly;
tesseract.maximumRecognitionTime = 60;
tesseract.pageSegmentationMode = G8PageSegmentationModeAutoOnly;
//灰化 如果是英文或者数字推荐使用。如果是汉字不推荐使用
//tesseract.image = [image g8_blackAndWhite];
tesseract.image = image;
[tesseract recognize];
NSLog(@"识别出的文字是 - \n%@", tesseract.recognizedText);
});
}
复制代码
原图:
如效果:
需要注意的是,识别的图片尽量高清,不然识别出来的效果很差
以下问题是主要是针对:使用TesseractOCRiOS
2.使用TesseractOCRiOS 是常碰到的问题
2.1 问题一
Showing Recent Messages
Multiple commands produce '/Users/liujiajun/Library/Developer/Xcode/DerivedData/OCR-dspupydyaqiurjgfwjejgnknqwph/Build/Products/Debug-iphoneos/TesseractOCRiOS/TesseractOCR.framework/PrivateHeaders/config_auto.h':
复制代码
这是TesseractOCRiOS因为有两个重复文件,删除任意一个文件是可以编译,但是并不知道那个有用那个没用
所以,还是修改配置比较合适,xcode-file-workSpace settings修改配置,如图:
2.2 Xcode setting ENABLE_BITCODE=YES
ld: -weak_library and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together
复制代码
如图:
如果这种情况两种方法:
1.在TARGETS->Build Setting 搜索bitcode,改为NO
2.这个需求在Podfile添加设置
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'OCR' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for OCR
target 'OCRTests' do
inherit! :search_paths
# Pods for testing
end
target 'OCRUITests' do
# Pods for testing
end
pod 'TesseractOCRiOS', '~> 4.0.0'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
end
复制代码
2.3 问题三 “***line53”
actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53
复制代码
这个问题是,TesseractOCRiOS版本与traineddata版本不符合
2.4 问题四 “TESSDATA_PREFIX environment variable”
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
Failed loading language 'chi_sim'
复制代码
这个是在添加 tessdata 导致的问题
最好的方式是放在项目文件夹,在工程添加file,选择Create folder references
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END