2016-04-27 143 views
0

我是一名android开发人员,我正在整合Tesseract进行OCR扫描。对于我的应用程序,我有要求从任何角度的手机和手机的任何模式(纵向或横向)模式下检测OCR。为此,我正在尝试获取OCR的方向和倾斜角度,并基于此来纠正图像并处理OCR。在Android中使用Tesseract的方向和脚本检测(OSD)

我已经去了各种岗位找到方式获得定位,但无法成功。按照帖子中的一个,提到使用下面的逻辑来获得方向和倾斜角度:

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的我找不到在TessBaseApi.java类支持的方法AnalyseLayout()

我想获得处理图像的逻辑,这样我就可以对图像进行歪斜处理并对其进行处理。

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

回答

0

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

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