2015-12-11 25 views
14

Używam pytesseract i przyjrzałem się niektórym rozwiązaniom grupowym Google, ale nie działają one dla mnie.pytesseract nie może znaleźć określonego pliku

Mój kod jest prosta i jest następujący:

from PIL import ImageFilter 
import sys 
from PIL import Image 
import PIL.ImageOps  
import pytesseract 
import time 


image=Image.open("C:/temp/download.png") 
image.load() 
background = Image.new("RGB", image.size, (255, 255, 255)) 
background.paste(image, mask=image.split()[3]) # 3 is the alpha channel 
background.save('C:/temp/foo.jpg', 'JPEG', quality=80) 


img =Image.open('C:/temp/foo.jpg') 
img.load() 
print img 
print '-------------------' 
i = pytesseract.image_to_string(img) 
print i 

i odpowiedź błąd wrócę jest:

Traceback (most recent call last): 
    File "img.py", line 20, in <module> 
    i = pytesseract.image_to_string(img) 
    File "build\bdist.win32\egg\pytesseract\pytesseract.py", line 161, in image_to 
_string 
    File "build\bdist.win32\egg\pytesseract\pytesseract.py", line 94, in run_tesse 
ract 
    File "C:\Users\%USER%\AppData\Local\Continuum\Anaconda\lib\subprocess.py", 
line 710, in __init__ 
    errread, errwrite) 
    File "C:\Users\%USER%\AppData\Local\Continuum\Anaconda\lib\subprocess.py", 
line 958, in _execute_child 
    startupinfo) 
WindowsError: [Error 2] The system cannot find the file specified 

Wszelkie wskazówki byłyby fantastyczne.

Dodawanie tesseract do mojego zmiennej PATH pomogło: C:\Program Files (x86)\Tesseract-OCR

ale kod teraz ulega awarii podczas próby uruchomienia kawałek pytesseract.

+0

Można spróbować użyć tej innej biblioteki korzystać tesseract w Pythonie: [pyslibtesseract] (https://github.com/brunomacabeusbr/pyslibtesseract). Ta biblioteka używa innego sposobu ładowania obrazu. – Macabeus

Odpowiedz

38

Wystarczy nacisnąć ten sam błąd i postanowił odpowiedzieć na to pytanie - może ktoś pomóc zaoszczędzić czas ...

Po pierwsze, upewnij się, że masz installed/copied Tesseract-OCR executables.

System Windows nie może znaleźć pliku wykonywalnego tesseract w katalogach określonych w zmiennej środowiskowej PATH. Więc albo upewnij się, że katalog zawierający tesseract jest w zmiennej PATH lub nadpisać tesseract_cmd zmiennej w skrypcie Pythona jak się następująco (umieścić PATH zamiast):

import pytesseract 

pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract' 

Poza tym pewność, że zmienna środowiska dokonania TESSDATA_PREFIXsystemu Windows jest ustawiony na katalog zawierający katalog tessdata. Na przykład:

TESSDATA_PREFIX=C:\Program Files (x86)\Tesseract-OCR 

jeśli tessdata lokalizacja to: C:\Program Files (x86)\Tesseract-OCR\tessdata

+4

Aby skomentować, zachęcam do zainstalowania tesseract FIRST, a następnie wypróbowania części Pythona. –

+2

@ jasonm, zaktualizowałem moją odpowiedź. Właściwie myślałem, że to zbyt oczywiste, aby o tym wspomnieć, ale, hej, masz rację - może to zmylić niedoświadczonych użytkowników. – MaxU

+0

@Jamie Bull Postępowałem zgodnie z twoją radą dotyczącą ścieżki, ale nie mogłem znaleźć linii tessdata – Brandon