your tesseractnotfounderror pytesseract pyimagesearch not installed instalar como python image ocr pytesser

python - tesseractnotfounderror - usa pytesseract para reconocer el texto de la imagen



tesseract is not installed or it''s not in your path windows (4)

Necesito usar pytesseract para extraer texto de esta imagen:

y el código:

from PIL import Image, ImageEnhance, ImageFilter import pytesseract path = ''pic.gif'' img = Image.open(path) img = img.convert(''RGBA'') pix = img.load() for y in range(img.size[1]): for x in range(img.size[0]): if pix[x, y][0] < 102 or pix[x, y][1] < 102 or pix[x, y][2] < 102: pix[x, y] = (0, 0, 0, 255) else: pix[x, y] = (255, 255, 255, 255) img.save(''temp.jpg'') text = pytesseract.image_to_string(Image.open(''temp.jpg'')) # os.remove(''temp.jpg'') print(text)

y el "temp.jpg" es

No está mal, pero el resultado de la impresión es ,2 WW No es el texto correcto 2HHH , entonces, ¿cómo puedo eliminar esos puntos negros?


Aquí está mi pequeño avance con la eliminación del ruido y la línea arbitraria dentro de cierto rango de frecuencia de color.

import pytesseract from PIL import Image, ImageEnhance, ImageFilter im = Image.open(img) # img is the path of the image im = im.convert("RGBA") newimdata = [] datas = im.getdata() for item in datas: if item[0] < 112 or item[1] < 112 or item[2] < 112: newimdata.append(item) else: newimdata.append((255, 255, 255)) im.putdata(newimdata) im = im.filter(ImageFilter.MedianFilter()) enhancer = ImageEnhance.Contrast(im) im = enhancer.enhance(2) im = im.convert(''1'') im.save(''temp2.jpg'') text = pytesseract.image_to_string(Image.open(''temp2.jpg''),config=''-c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyz -psm 6'', lang=''eng'') print(text)


Aquí está mi solución:

import pytesseract from PIL import Image, ImageEnhance, ImageFilter im = Image.open("temp.jpg") # the second one im = im.filter(ImageFilter.MedianFilter()) enhancer = ImageEnhance.Contrast(im) im = enhancer.enhance(2) im = im.convert(''1'') im.save(''temp2.jpg'') text = pytesseract.image_to_string(Image.open(''temp2.jpg'')) print(text)


Para extraer el texto directamente de la web, puede probar la siguiente implementación (making use of the first image) :

import io import requests import pytesseract from PIL import Image, ImageFilter, ImageEnhance response = requests.get(''https://i.stack.imgur.com/HWLay.gif'') img = Image.open(io.BytesIO(response.content)) img = img.convert(''L'') img = img.filter(ImageFilter.MedianFilter()) enhancer = ImageEnhance.Contrast(img) img = enhancer.enhance(2) img = img.convert(''1'') img.save(''image.jpg'') imagetext = pytesseract.image_to_string(img) print(imagetext)


Tengo un enfoque diferente de pytesseract para nuestra comunidad. Aquí está mi enfoque

import pytesseract from PIL import Image text = pytesseract.image_to_string(Image.open("temp.jpg"), lang=''eng'', config=''--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789'') print(text)