【问题标题】:Tesseract Extract specific informationTesseract 提取特定信息
【发布时间】:2015-08-04 11:27:49
【问题描述】:

我想扫描这张图片并只从图片中获取名称和城市信息。我应该如何获得这些信息?

我正在使用 tesseract 3.02.

我必须处理数百张图像,并从中提取特定信息(比如名称和城市)。

【问题讨论】:

  • 您的问题得到答案了吗?
  • 不,但我解决了,因为我所有的图像都一样(模板化,例如 KYC 表格)。由于我的是一个 Web 应用程序,我使用 Jquery Crop 获取图像的 X、Y、高度和宽度坐标,然后使用 tesseract 仅扫描基于 x、y、高度和宽度坐标的部分。

标签: ocr tesseract


【解决方案1】:

当然,这完全取决于您使用的是哪个 Tesseract SDK。我将开源 G8Tesseract iOS SDK 用于一个与您正在尝试做的事情类似的项目。如果您正在使用该框架,这可能会有所帮助。我推荐的是,当您创建G8RecognitionOperation 时,您可以调用一个方法来检索数据,称为recognitionCompleteBlock。在此方法的完成块中,获取操作的结果并遍历并解析您想要的数据。由于您知道您想要的信息就在“姓名”之后/“社会保障”之前,我会在此之前和之后分割所有不需要的文本,然后从那里进行剖析。像这样的:

 G8RecognitionOperation *operation = [[G8RecognitionOperation alloc] initWithLanguage:@"eng"];
// Set up operation...

operation.recognitionCompleteBlock = ^(G8Tesseract *tesseract) {
    // Fetch the recognized text
    NSString *recognizedText = tesseract.recognizedText;

    NSLog(@"%@", recognizedText);

    // GET NAME
    // Split the result into two strings / Index 0 is trash because it is before Name
    NSArray *slice1 = [recognizedText componentsSeparatedByString:@"Name"];
    NSString *slice1String = slice1[1];

    // What comes before "Social" should be the name you are looking for
    NSArray *slice2 = [slice1String componentsSeparatedByString:@"Social"];
    NSString *name = slice2[0];

    //GET CITY (do the same thing here)
    // Split the rest of the result and get the desired data
    NSArray *slice3 = [slice2[1] componentsSeparatedByString:@"City"];
    NSString *slice3String = slice3[1];

    // What comes before "State" should be the city you are looking for
    NSArray *slice4 = [slice3String componentsSeparatedByString:@"State"];
    NSString *city = slice4[0];

    NSLog(@"Applicant Name: %@ | City: %@",name, city);

};

【讨论】:

  • 任何其他可用的开源sdk,这个功能是什么?
  • 你想在什么平台上运行它?我知道有几个。 code.google.com/p/tesseractdotnet 是一个 .NET 包装器。另外code.google.com/p/python-tesseract 是一个 Python API。无论您要构建什么平台,您都可能有一个解决方案。
  • 请记住一件事。以我的经验,Tesseract 在识别精美扫描页面上的打印字符方面做得非常好。它在人工手写部门做得不太好。如果你遇到一个字迹很糟糕的人,你的结果会很糟糕。
  • 我正在尝试在java平台上构建,所有图像都是打印的。
猜你喜欢
  • 1970-01-01
  • 2018-01-06
  • 2017-02-17
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 2015-01-20
  • 2020-08-04
  • 2013-11-22
相关资源
最近更新 更多