3

特定のパターンのみに一致するように (Tess4J ラッパーを使用して) Tesseract を取得しようとしています。パターンは 4 桁の数字で、\d\d\d\d になると思います。これは、私がtesseractに供給している画像の非常に小さなサブセットです(フロアプランは制限されているため、もっと多くを投稿するように注意しています):http://mike724.com/view/a06771

次のJavaコードを使用しています:

    File imageFile = new File("/<redacted>/file.pdf");

    Tesseract instance = Tesseract.getInstance();
    instance.setTessVariable("load_system_dawg", "F");
    instance.setTessVariable("load_freq_dawg", "F");
    instance.setTessVariable("user_words_suffix", "");
    instance.setTessVariable("user_patterns_suffix", "\\d\\d\\d\\d");

    try {
        String result = instance.doOCR(imageFile);
        System.out.println(result);
    } catch (TesseractException e) {
        System.err.println(e.getMessage());
    }

私が直面している問題は、tesseract がこれらの構成オプションを尊重していないように見えることです。結果にはまだテキスト/単語が含まれています。部屋番号 (例: 2950) のみを取得する予定です。

4

2 に答える 2

2

これを正しく構成していません。

user_patterns_suffix は、パターンを含むテキスト ファイルのファイル拡張子を示すためのものです。

user_patterns_suffix pats

tesseract tessdata フォルダーにファイルを配置する必要があることを意味します

tessdata/eng.pats

... eng が使用していた言語であると仮定します。

詳細はこちら:

http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseract.1.html#_config_files_and_augmenting_with_user_data

ユーザー パターンは、パターンの前に 6 固定文字よりも短くない可能性があるため、どのような場合でもこれを達成できない可能性があることを思い出しますが、最初に正しい構成を試してください。

于 2015-01-14T16:24:46.393 に答える
0

これらは初期化専用パラメーターのように見えます。そのため、メソッドに渡すには、たとえば、フォルダーのbazaar下に配置された名前の付いた構成ファイルにある必要があります。configssetConfigs

instance.setConfigs(Arrays.asList("bazaar");

参考文献:
https://github.com/tesseract-ocr/tesseract/blob/master/doc/tesseract.1.asc
https://github.com/tesseract-ocr/tesseract/wiki/ControlParams
http://tess4j. sourceforge.net/docs/docs-1.4/

于 2015-01-19T03:40:55.397 に答える