6

リアルタイム OCR を使用して Android アプリケーションに取り組んでいます。私は OpenCV と Tesseract ライブラリを使用しています。しかし、Galaxy SIII でもパフォーマンスが非常に悪いです。パフォーマンスを向上させる方法はありますか? それは私のコードです:

    Mat mGray = new Mat();
capture.retrieve(mGray);
Bitmap bmp = Bitmap.createBitmap(mGray.cols(), mGray.rows(), Bitmap.Config.ARGB_8888);
tessBaseApi.setImage(bmp);
String recognizedText = tessBaseApi.getUTF8Text();
Log.i("Reg", recognizedText);

ビットマップを Tesseract API に渡すと、tesseract OCR の速度が低下しますか? Tesseract API に渡す前に、どのような前処理を実行する必要がありますか?

4

4 に答える 4

1

Tesseract に認識パス 1 のみを実行させることで、recog_all_words()を呼び出すときにパス 2 から 9 をスキップできます。

baseapi.cppの次の行を変更し、 Tesseract ライブラリ プロジェクトを再構築します。

if (tesseract_->recog_all_words(page_res_, monitor, NULL, NULL, 0)) {

次のように変更します。

if (tesseract_->recog_all_words(page_res_, monitor, NULL, NULL, 1)) {
于 2012-10-04T17:45:13.880 に答える
0

それをより速くするかもしれないいくつかのことは次のとおりです。

  • createBitmap の前に、mGray からテキストがある小さい領域を選択します。したがって、後続のより重いメソッドは小さい画像を処理します。
  • Bitmap.Config.ARGB_8888 を Bitmap.Config.RGB_565 に変更します。画像はグレースケールです。ARGB ビットマップは必要ありません。
于 2012-10-04T09:00:06.533 に答える