2017-05-08 7 views
0

私はリアルタイムテキスト検出のためにAndroidアプリケーションでTesseract(tess-two)ライブラリを使用しています。 マイコード:Tesseractの出力が完全に間違っていてぎこちない

public void onPreviewFrame(byte[] data, Camera camera) { 
    try { 
    Camera.Size previewSize =camera.getParameters().getPreviewSize(); 
    YuvImage yuvimage=new YuvImage(data, ImageFormat.NV21, previewSize.width, previewSize.height, null); 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    yuvimage.compressToJpeg(new Rect(0, 0, previewSize.width, previewSize.height), 60, baos); 
    byte[] jdata = baos.toByteArray(); 

    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inSampleSize = 4; 
    Bitmap bmp = BitmapFactory.decodeByteArray(jdata, 0, jdata.length); 

    TessBaseAPI baseApi = new TessBaseAPI(); 
    baseAPI.init(DATA_PATH, lang);  
    baseAPI.setImage(bmp); 
    extractedText = baseAPI.getUTF8Text(); 
    DisplayResult.setText(extractedText); 
    } 
    catch(Exception e) { 
    e.printStackTrace(); 
    } 

は、私は何のたTesseract初期化で問題と同様に設定する画像がありません。しかし、出力が完全に間違っている、画像を見てください。テキストビューには、tesseractの出力が表示されます(表面ビューの最上部にあります)。

どのように私はこの問題を解決するのですか?

+1

Tesseractへようこそ! ;)正直言って、これはそうです。イメージを処理して品質を調整したり、白黒に変換したり、各PSMモードを試したりしてみることができます。テキストだけに提供したイメージをトリミングすると、「MADE IN CHINA」というテキストが完全に表示されますが、画像全体のTesseractは管理できません。 [こちらのヒントをもっと見る](https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality)、画像をトリミングすることができない限り、息を止めないでください。 – samiles

+0

不均一な照度を減らすには、画像を前処理する必要があります。 – rmtheis

答えて

1

あなたの出力の最適化を助けるかもしれないいくつかのこと:

  • 目的のテキスト領域に画像をトリミング出力
  • を処理する前には、テキスト処理
から句読点やその他の文字を除外
関連する問題