我有一个PDF文件,其中包含我们需要导入数据库的数据.这些文件似乎是打印的字母数字文本的pdf扫描.看起来像10点.英语字体格式一种.
是否有任何工具或组件可以让我识别和解析此文本?
我正在使用python-tesseract从图像中提取单词.这是tesseract的python包装器,它是一个OCR代码.
我使用以下代码来获取单词:
import tesseract
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetVariable("tessedit_char_whitelist", "0123456789abcdefghijklmnopqrstuvwxyz")
api.SetPageSegMode(tesseract.PSM_AUTO)
mImgFile = "test.jpg"
mBuffer=open(mImgFile,"rb").read()
result = tesseract.ProcessPagesBuffer(mBuffer,len(mBuffer),api)
print "result(ProcessPagesBuffer)=",result
Run Code Online (Sandbox Code Playgroud)
这仅返回图像中的单词而不是它们的位置/大小/方向(或者换句话说,包含它们的边界框).我想知道是否有任何方法可以实现这一点
我想制作一个类似凸轮扫描仪的应用程序来裁剪文档.
但我需要像我的两个图像一样的功能..
第一张图像显示相机拍摄的图像..

第二个图像像这样识别捕获的图像部分.

我研究得越来越多,但没有得到任何外出,所以,我在这里问,是否有任何人这样做告诉我..
谢谢
我编写了一个应用程序,根据文本区域对图像进行分割,并根据需要提取这些区域.我试图做的是清洁图像,以便OCR(Tesseract)给出准确的结果.我将以下图像作为示例:
通过tesseract运行此结果会产生广泛不准确的结果.然而,清理图像(使用photoshop)获取图像如下:
给出我期望的结果.第一个图像已经通过以下方法运行,以清除它到那一点:
public Mat cleanImage (Mat srcImage) {
Core.normalize(srcImage, srcImage, 0, 255, Core.NORM_MINMAX);
Imgproc.threshold(srcImage, srcImage, 0, 255, Imgproc.THRESH_OTSU);
Imgproc.erode(srcImage, srcImage, new Mat());
Imgproc.dilate(srcImage, srcImage, new Mat(), new Point(0, 0), 9);
return srcImage;
}
Run Code Online (Sandbox Code Playgroud)
我还能做些什么来清理第一张图像,使其类似于第二张图像?
编辑:这是在运行该cleanImage功能之前的原始图像.
我正在尝试在新的Swift 3.0项目中使用Tesseract-OCR-iOS.我正在使用Xcode版本8.1(8B62).CocoaPods是1.1.1版.
当我尝试使用时tesseract.recognize(),我的应用程序崩溃,我在控制台中获得以下输出:
actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53
Run Code Online (Sandbox Code Playgroud)
我发现这篇文章,听起来我使用的是错误的版本traineddata.我tessdata从tesseract-ocr/tessdata repo下载了,所以我很困惑为什么我的版本号不匹配.
任何建议如何让Tesseract工作非常感谢.以下是其他信息:我的设置.
这是我的Podfile样子:
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'TesseractDemo' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for TesseractDemo
pod 'TesseractOCRiOS', '4.0.0'
end
Run Code Online (Sandbox Code Playgroud)
我已将tessdata包含eng.traineddata …
根据您的经验,什么是最准确的开源光学字符识别(OCR)库/软件来阅读日文文本?
我刚试过nhocr,即使是非常干净的高清文档,它的错误率也超过了2%.
我正在尝试Tesseract OCR在我的iOS应用程序中使用库.我从github下载了tesseract-ios库,当我试图识别一个简单的文本图像时,我得到了垃圾.这是我试图识别的图像:

我的文字难以理解:
T0I1101T0W KIR1 H1I1101T0W KIR1 H1I1101T0W CIBEPS H1 ES PBHY P306 EHH11 133I R1 11335 11I1H1 19 13S SYIL 3B19 M H300H1911 H1113 AIR1 J1 OIII 3I9SH5H133IS 13V9 I1 Q1H211 E015 19 W331 H1 111SW
为什么Tesseract甚至无法识别简单的图像?这是我用来实例化Tesseract的代码:
Tesseract* tesseractObject = [[Tesseract alloc] initWithDataPath:@"tessdata" language:@"eng"];
[tesseractObject setVariableValue:@"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" forKey:@"tessedit_char_whitelist"];
[tesseractObject setImage:image];
[tesseractObject recognize];
NSLog(@"RECOGNISED= %@" , [tesseractObject recognizedText]);
Run Code Online (Sandbox Code Playgroud)
这是我的项目结构:
我通过引用添加了英文testdata文件夹.那么我做错了什么?我怎样才能解决这个问题?
有没有办法完成类似于iTunes和App Store应用程序使用设备相机兑换礼品卡时所做的事情,在实时相机提要上实时识别短字符串?

我知道在iOS 7中,现在有一个AVMetadataMachineReadableCodeObject类AFAIK,它只代表条形码.我更感兴趣的是检测和读取短字符串的内容.是否可以使用公开的API方法或您可能知道的其他第三方SDK?
还有一个过程中的视频:
https://www.youtube.com/watch?v=c7swRRLlYEo
最好,
OCR软件是否能够可靠地将以下图像转换为值列表?

更新:
更详细的任务如下:
我们有一个客户端应用程序,用户可以在其中打开报告.此报告包含值表.但并非每个报告看起来都一样 - 不同的字体,不同的间距,不同的颜色,也许报告包含许多具有不同行数/列数的表...
用户选择包含表格的报告区域.用鼠标.
现在我们要将选定的表转换为值 - 使用我们的OCR工具.
在用户选择矩形区域时,我可以要求提供额外信息以帮助进行OCR过程,并要求确认已正确识别这些值.
它最初将是一个实验性项目,因此很可能使用OpenSource OCR工具 - 或者至少一个不需要花费任何费用用于实验目的的工具.