2016-10-23 7 views
4

私はGoogleのMobile Vision APIを使用して基本的なocrアンドロイドアプリを作成しようとしていますが、実際に静止画像のテキストを認識するのは難しいです。私はcodelabsのチュートリアル、他の人の質問、つまりandroid-visionタグを持つすべての単一のstackoverflow質問とドキュメントを見てきましたが、私はまだ運がありませんでした。私は他の誰かが似たような質問をしたことを知っていますが、そこに投稿された答えはうまくいかないGoogleのモバイルビジョンを使用して静止画像のテキストを認識しますか?

は、ここで私は問題が何であるかを理解していない私のコード

Bitmap photo = (Bitmap) extras.get("data"); 
     pictureOcrView.setImageBitmap(photo); 
     Context context = getApplicationContext(); 
     TextRecognizer ocrFrame = new TextRecognizer.Builder(context).build(); 
     Frame frame = new Frame.Builder().setBitmap(photo).build(); 
     if (ocrFrame.isOperational()){ 
      Log.e(TAG, "Textrecognizer is operational"); 
     } 
     SparseArray<TextBlock> textBlocks = ocrFrame.detect(frame); 

     for (int i = 0; i < textBlocks.size(); i++) { 
      TextBlock textBlock = textBlocks.get(textBlocks.keyAt(i)); 

      Log.e(TAG, "something is happening"); 
      } 

の抜粋です。私はテキストが文字化けしているようではありません、私は全くテキストを受け取っていません。コーデラブチュートリアルのために機能したテキストの絵でこのアプリケーションをテストすると、何も得られません。 textBlock配列が作成されていないようですが、理由はわかりません。私はgetHeightのような他のフレームメソッドを正常に実行でき、isOperational()がtrueを返しているため、フレームを作成したことがわかります。

私が間違っていることに関する提案はありますか?

答えて

2

私はちょうど同じ問題を持っていたとのことで画像を回転させることができます。問題は、処理している画像が写真全体ではなく(extras.get( "data")を呼び出して取得した)サムネイルだけであることです。フルイメージにアクセスするには、イメージを保存してから使用する必要があります。その方法の詳細については、下記のリンクをご覧ください。 https://developer.android.com/training/camera/photobasics.html

1

私の場合。カメラやギャラリーからビットマップを取得すると、そのビットマップの向きが回転しています。ビットマップが回転されているため、TextRecognizerはテキストを検出できません。ビットマップを回転させて正しい向きにする必要があります。

あなたがthisコメント

関連する問題