使用Android中的Tesseract进行方向和脚本检测(OSD)

时间:2016-04-27 07:48:01

标签: android ocr tesseract

我是一名Android开发人员,我正在整合Tesseract进行OCR扫描。对于我的应用程序,我要求从任何角度的手机和手机的任何模式(纵向或横向)模式检测OCR。为此,我试图获得OCR的方向和倾斜角度,并根据我将偏移图像并处理OCR。

我已经通过各种帖子找到了获得迎新但未能成功的方法。根据其中一篇文章,提到了使用以下逻辑获得方向和倾斜角度:

inputfile = "/usr/src/tesseract-3.02/eurotextUpsideDown.png";
image = pixRead(inputfile);

api->Init("/usr/src/tesseract-3.02/", "eng");
api->SetPageSegMode(tesseract::PSM_AUTO_OSD);
api->SetImage(image);
api->Recognize(0);

tesseract::PageIterator* it =  api->AnalyseLayout();
tesseract::Orientation orientation;
tesseract::WritingDirection direction;
tesseract::TextlineOrder order;
float deskew_angle;

it->Orientation(&orientation, &direction, &order, &deskew_angle);
printf("Orientation: %d;\nWritingDirection: %d\nTextlineOrder: %d\n" \
       "Deskew angle: %.4f\n",
       orientation, direction, order, deskew_angle);

但是在android中我无法在AnalyseLayout()类中找到支持的方法TessBaseApi.java

我想获得处理图像的逻辑,以便我可以校正图像并对其进行处理。

任何信息都会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

你在这里回答了自己的问题。 AnalyseLayout方法不可用的原因是因为它尚未在Android API中实现(截至今天)。你需要自己实现它。

您可能想要查看Leptonica的Skew.findSkew方法。在SkewTest类中有一个使用它的例子。