Como posso extrair texto de imagens?
Não estou falando de arquivos digitalizados, mas de imagens variadas, como quando você tira uma foto em alta definição de um quadro negro na aula, e ela está bem escrita à mão; ou quando você fotografa uma página de um livro de receitas e deseja a receita em formato de texto.
Algum software livre e aberto para isso?
Tentei o tesseract e os resultados foram terríveis.
Responder1
tesseract-ocr
seria o melhor comparado a todos os outros. Para instalação, execute o comando abaixo
sudo apt-get install tesseract-ocr
O uso é tesseract filename.jpg output.txt
, então ele irá gerar output.txt
o arquivo.
Você pode considerar selecionar o idioma apropriado. Nesse caso, você precisará instalar tesseract-ocr-LANG
o pacote, onde LANG
está o código de três letrasCódigo de idioma ISO 639-2. No momento você tem 123 idiomas no repositório 18.04.Então usepor exemplo:
tesseract mySpanishText.jpg output -l spa
Responder2
O ato de extrair texto de imagens é chamado OCR
e o Ubuntu possui uma página wiki dedicada aOCR. Dessa página:
Ferramentas de OCR disponíveis
Os repositórios do Ubuntu Universe contêm as seguintes ferramentas de OCR:
- gocr- Um OCR de linha de comando
- confuso- plugin spamassassin para verificar anexos de imagens
- libhocr0- OCR hebraico
- ocrad- Programa de reconhecimento óptico de caracteres
- ocrfeeder- Análise de layout de documentos e sistema de reconhecimento óptico de caracteres
- polvo- análise de documentos e sistema OCR
- tesseract-ocr
Os repositórios multiverso do Ubuntu também contêm:
- cuneiforme- sistema OCR multilíngue
Alguns pacotes estão desatualizados, mas outros não oficiais podem ser encontrados emAlex_P PPA(Código de adição PPA: ppa:alex-p/notesalexp). Se você nunca usou um cheque PPAcomo adicionar software de um PPA.
editar: conforme mostrado no comentárioClara OCRexiste também, mas foi prejudicado por Hardy e seu site foi atualizado em 2009.
Responder3
Responder4
Usando tesseract-ocr
podemos extrairtextodeimagens. Eu testei gocr
o que não funcionou bem em comparação comtesseract-ocr
Instalação:
sudo apt-get install tesseract-ocr
Python
programa para converter todos os arquivos de imagem compngextensão dentro do diretório atual paraTXTarquivo
#!/usr/bin/env python3.10
import os
import subprocess
def list_files(path):
files = []
for name in os.listdir(path):
if os.path.isfile(os.path.join(path, name)):
files.append(os.path.join(path, name))
return files
def convertImageToText(img_file):
#process = subprocess.Popen(['tesseract', img_file,
# ''.join(img_file.rsplit('.png', 1))])
os.system(f"tesseract {img_file} {''.join(img_file.rsplit('.png', 1))}")
def startOperation():
list_file = list_files(".")
print(list_file)
for img_file in list_file:
if img_file.lower().split(".")[-1] == "png":
convertImageToText(img_file)
startOperation()