2017-03-26 15 views
0

私はpythonを使って画像からbangla文字を検出しようとしていますので、私は使用することを決めましたpytesseract。この目的のために、私は以下のコードを使用しました:pytesseractを使ってBangla文字を検出する

import pytesseract 
from PIL import Image, ImageEnhance, ImageFilter 

im = Image.open("input.png") # the second one 
im = im.filter(ImageFilter.MedianFilter()) 
enhancer = ImageEnhance.Contrast(im) 
im = enhancer.enhance(2) 
im = im.convert('1') 
im.save('temp2.png') 
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract' 
text = pytesseract.image_to_string(Image.open('temp2.png'),lang="ben") 
print text 

英語のイメージを与えれば、問題は検出されます。しかし、私がlang="ben"と書いているときに、ベンガル文字のイメージから検出すると、私のコードは永遠の時間のように、あるいは永遠に動いています。

P.S:私はtessdataフォルダにベンガル語列のデータをダウンロードしていると私はPyCharmでそれを実行しようとしています。

誰でもこの問題の解決に手伝ってもらえますか?

sample of input.png

答えて

1

私はWindowsにBangla(india)言語を追加しました。ダウンロードしたben.traineddataTESSDATA_PREFIXは、私のPCでC:\Program Files\Tesseract 4.0.0\tessdataに等しいです。次に、コマンドプロンプトで

> tesseract -l ben bangla.jpg bangla_out

を実行し、2秒で以下の結果を得ました。私はその言語を理解していなくても、結果はうまく見えます。

enter image description here

あなたはそれが-l benのために働くかどうかを確認するために、コマンドプロンプトでたTesseractを実行しようとしたことがありますか?

EDIT:使用

それをテストするために、アナコンダが付属していますPyCharmに似スパイダー、、。以下のようにTesseractを呼び出すようにコードを修正しました。スパイダーに

pytesseract.pytesseract.tesseract_cmd = "C:/Program Files/Tesseract 4.0.0/tesseract.exe" 

テストコード:

import pytesseract 
from PIL import Image, ImageEnhance, ImageFilter 
import os 

im = Image.open("bangla.jpg") # the second one 
im = im.filter(ImageFilter.MedianFilter()) 
enhancer = ImageEnhance.Contrast(im) 
im = enhancer.enhance(2) 
im = im.convert('1') 
im.save("bangla_pp.jpg") 

pytesseract.pytesseract.tesseract_cmd = "C:/Program Files/Tesseract 4.0.0/tesseract.exe" 
text = pytesseract.image_to_string(Image.open("bangla_pp.jpg"),lang="ben") 
print text 

それが動作し、処理された画像に以下の結果を生じました。明らかに、処理された画像のOCR結果は、元の画像ほど良好ではありません。処理bangla_pp.jpgから

結果:オリジナル画像から

প্রত্যাবর্তনকারীরা 
    তাঁদের দেশে গিয়ে 

    -~~-<~~~~-- 

    প্রত্যাবর্তন-পরবর্তী 
    আর্থিক সহায়তা 
    = পাবেন তার 

結果、直接たTesseractへの供給。

コード:

from PIL import Image  
import pytesseract as tess 

print tess.image_to_string(Image.open('bangla.jpg'), lang='ben') 

出力:

প্রত্যাবর্তনকারীরা 
তাঁদের দেশে গিয়ে 

প্রত্যাবর্তন-পরবর্তী 
আর্থিক সহায়তা 
পাবেন তার 
+0

私はそれが動作コマンドプロンプトでそれを試してみました。しかし、上記のコードは** pycharm **で書かれています。 ** pycharm **では無制限に動作します。 –

+0

@pial上記のEDITを参照してください。 – thewaywewere

関連する問題