3

私は、(テキストのハードコピーから)テキストを撮影し、そのテキストをテキストファイルに変換するプロジェクトに取り組んでいます。次に、そのテキストファイルを使用して、ニュース記事へのハイパーリンクを提供したり、ユーザーがドキュメントを編集できるようにするなど、さまざまなことを実行したいと思います。

私がこれまでに試したツールは、sourceforge.netのJava OCRで、パッケージで提供されている画像で正常に機能します。しかし、自分のテキストを撮影すると、まったく機能しません。実装する必要のあるトレーニングプロセスはありますか?もしそうなら、誰かがそれを実装する方法を知っていますか?どんな助けでも大いに役立つでしょう。ありがとうございました!

4

1 に答える 1

0

Tesseract OCRを使用することにしたJavaアプリケーションがあり、を使用してそれを呼び出すだけRuntime.exec()です。おそらくあなたが必要とする答えは完全ではありませんが、あなたがそれを考慮しなかった場合に備えて。


コメント返信に応じて編集+コードを追加

  • Windowsのインストールでは、インストーラーを使用するか、既製のバイナリを解凍することができたと思います。
  • Linuxサーバーでは、Tesseractを自分でコンパイルする必要がありましたが、そのようなこと(gcc)に慣れていれば、それほど難しくはありません。唯一の落とし穴は、 Leptonicaに依存していることです。これもコンパイルする必要があります。

    // Tesseract can only handle .tif format, so we have to convert it
    ImageIO.write( ImageIO.read( new java.io.File(file.getPath())), "tif", tmpFile[0]);
    
    String[] tesseractCmd = new String[]{"tesseract", tmpFile[0].getAbsolutePath(), StringUtils.removeEnd(tmpFile[1].getAbsolutePath(), ".txt")};
    final Process process = Runtime.getRuntime().exec(tesseractCmd);
    try {
        int exitValue = process.waitFor();
        if(exitValue == 0) {
            final String extractedText = SearchableTextExtractionUtils.extractPlainText(new FileReader(tmpFile[1]));
            return extractedText;
        }
        throw new SearchableTextExtractionException(exitValue, Arrays.toString(tesseractCmd));
    } catch (InterruptedException e) {
        throw new SearchableTextExtractionException(e);
    } finally {
        process.destroy();
    }
    
于 2012-10-31T13:31:50.543 に答える