2016-04-27 19 views
0

私はアンドロイドの開発者であり、OCRスキャン用のTesseractを統合しています。私のアプリケーションでは、電話の任意の角度から(任意のモード(縦または横)の電話モードで)OCRを検出する必要があります。このために、私はOCRの向きと斜め角度を取得しようとしており、それに基づいてイメージを傾き補正し、OCRを処理します。AndroidでTesseractを使用したオリエンテーションとスクリプト検出(OSD)

オリエンテーションを取得する方法を見つけるためにさまざまな投稿がありましたが、成功することはできませんでした。ポストの1あたりとして、次のロジックを使用して向きやスキュー角を得るために言及されています

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); 

しかし、アンドロイドで、私はTessBaseApi.javaクラスでサポートされている方法AnalyseLayout()を見つけることができません。

私は画像をスキューして処理できるように、画像を処理するロジックを取得したいと考えています。

いずれの情報も大きな助けになります。

答えて

0

ここであなた自身の質問に答えました。 AnalyseLayoutメソッドが利用できない理由は、Android APIで実装されていないためです(今日)。自分で実装する必要があります。

代わりに、LeptonicaのSkew.findSkewメソッドを参照してください。 SkewTestクラスでの使用例があります。

関連する問題