これは元のスクリーンショットであり、画像を4つの部分にクロップし、画像の背景を可能な範囲までクリアしましたが、tesseractはここで最後の列のみを検出し、残りは無視します。
結果の処理中に削除した空白スペースがあるため、tesseractからの出力が表示されます
Femme—Fatale.
DaRkLoRdEIa
aChineseN1gg4
Noob_Diablo_
結果の処理中に削除した空白スペースがあるため、tesseractからの出力が表示されます
Kicked.
NosNoel
ChikiZD
Death_Eag|e_42
Chai—.
3579 10 1 7 148
2962 3 O 7 101
2214 2 2 7 99
2205 1 3 6 78
8212
7198
6307
5640
4884
15
40
40
6O
80
80
の出力をダンプしています
result = `pytesseract.image_to_string(Image.open("D:/newapproach/B&W"+str(i)+".jpg"),lang="New_Language")`
しかし、一貫した結果を得るためにここから先に進む方法がわかりません.tesseractにテキスト領域を認識させ、それをスキャンさせるために、とにかくそこにあります。トレーナー(SunnyPage)では、デフォルトの認識でtesseractがそれをスキャンします一部の領域を認識できませんが、手動で選択すると、すべてが正しく検出され、テキストに正しく変換されます
使用するpsm値を決定するオプションを提供するコマンドラインを試してみました。
あなたはこれで試すことができます:
pytesseract.image_to_string(image, config='-psm 6')
あなたが提供した画像で試した結果は次のとおりです。
私が直面している唯一の問題は、私のテッセラクト辞書があなたのイメージで提供された "1"を "" I "に解釈することです。
以下は、使用可能なpsmオプションのリストです。
pagesegmodeの値は次のとおりです。0 =方向とスクリプト検出(OSD)のみ。
1 = OSDによる自動ページ分割。
2 =自動ページ分割、ただしOSDまたはOCRなし
3 =全自動のページ分割、ただしOSDなし。 (デフォルト)
4 =可変サイズのテキストの単一の列を想定します。
5 =垂直方向に整列したテキストの単一の均一なブロックを想定します。
6 =テキストの単一の均一なブロックを想定しています。
7 =画像を単一のテキスト行として扱います。
8 =画像を1つの単語として扱います。
9 =画像を円の1つの単語として扱います。
10 =画像を単一の文字として扱います。
このリンクを使用しました
https://www.howtoforge.com/tutorial/tesseract-ocr-installation-and-usage-on-ubuntu-16-04/
精度を最大50%向上させる可能性がある以下のコマンドを使用してください `
Sudo apt update
Sudo apt install tesseract-ocr
Sudo apt-get install tesseract-ocr-eng
Sudo apt-get install tesseract-ocr-all
Sudo apt install imagemagick
convert -h
tesseract [image_path] [file_name]
convert -resize 150% [input_file_path] [output_file_path]
convert [input_file_path] -type Grayscale [output_file_path]
tesseract [image_path] [file_name]
太字のみを表示します
ありがとう
fn = 'image.png'
img = cv2.imread(fn, 0)
img = cv2.bilateralFilter(img, 20, 25, 25)
ret, th = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# Image.fromarray(th)
print(pytesseract.image_to_string(th, lang='eng'))