1
resposta

na maquina local não funciona

estou tentando segui o coodiigo

 # Configurar a variável de ambiente (igual ao Colab) Aula2-livro, livro.jpeg
img3 = Image.open('Imagens/Aula2-livro.png')
#plt.axis('off')
plt.imshow(img3); 

mas quando chamo print(pytesseract.image_to_osd(img3))

tenho este erro:


TesseractError Traceback (most recent call last)
Cell In[115], line 1
----> 1 print(pytesseract.image_to_osd(img3))

File ~/anaconda3/envs/webscraping/lib/python3.12/site-packages/pytesseract/pytesseract.py:545, in image_to_osd(image, lang, config, nice, output_type, timeout)
542 config = f'--psm 0 {config.strip()}'
543 args = [image, 'osd', lang, config, nice, timeout]
--> 545 return {
546 Output.BYTES: lambda: run_and_get_output(*(args + [True])),
547 Output.DICT: lambda: osd_to_dict(run_and_get_output(*args)),
548 Output.STRING: lambda: run_and_get_output(*args),
549 }output_type

File ~/anaconda3/envs/webscraping/lib/python3.12/site-packages/pytesseract/pytesseract.py:548, in image_to_osd..()
542 config = f'--psm 0 {config.strip()}'
543 args = [image, 'osd', lang, config, nice, timeout]
545 return {
546 Output.BYTES: lambda: run_and_get_output(*(args + [True])),
547 Output.DICT: lambda: osd_to_dict(run_and_get_output(*args)),
--> 548 Output.STRING: lambda: run_and_get_output(*args),
549 }output_type

File ~/anaconda3/envs/webscraping/lib/python3.12/site-packages/pytesseract/pytesseract.py:286, in run_and_get_output(image, extension, lang, config, nice, timeout, return_bytes)
275 with save(image) as (temp_name, input_filename):
276 kwargs = {
277 'input_filename': input_filename,
278 'output_filename_base': temp_name,
(...) 283 'timeout': timeout,
284 }
--> 286 run_tesseract(**kwargs)
287 filename = kwargs['output_filename_base'] + extsep + extension
288 with open(filename, 'rb') as output_file:

File ~/anaconda3/envs/webscraping/lib/python3.12/site-packages/pytesseract/pytesseract.py:262, in run_tesseract(input_filename, output_filename_base, extension, lang, config, nice, timeout)
260 with timeout_manager(proc, timeout) as error_string:
261 if proc.returncode:
--> 262 raise TesseractError(proc.returncode, get_errors(error_string))

TesseractError: (1, 'Estimating resolution as 127 UZN file /tmp/tess_ca4qbgef loaded. Warning. Invalid resolution 0 dpi. Using 70 instead. Too few characters. Skipping this page Error during processing.') como soluciono isto?

1 resposta

Ei! Tudo bem, Daniel?

O erro é sobre o Tesseract ter falhado ao processar a imagem que você forneceu, que pode ser ocasionado por uma instabilidade na instalação do pytesseract, por exemplo.

Neste caso, recomendo ver se importou direitinho a biblioteca:

import pytesseract
import numpy as np
import cv2 # OpenCV
from google.colab.patches import cv2_imshow

Após verificar, reinicie o seu notebook. Após um tempo ocioso, as células de código podem ficar inativas, sendo necessário executá-las novamente, faça isso da seguinte forma:

  • No menu superior do Colab clique em Ambiente de execução > Reiniciar a sessão e executar tudo.
  • Aguarde uns segundos e observe se o código funciona.

Deixo aqui o notebook que usei de teste para você comparar com o seu código:

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, Daniel!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!