Extrai texto de um documento digitalizado

10

Existe alguma maneira de selecionar o texto de um documento digitalizado? (output é um jpg) Que tipo de ferramentas o Ubuntu oferece para realizar tal tarefa? Existe alguma biblioteca que eu possa usar em vez de pré-construir binários de software para fazer a mesma coisa? Eu tentei convertê-lo para um .pdf usando Imagemagick e, em seguida, tentando selecionar o texto, que obviamente não funcionou.

    
por Dananjaya 10.05.2011 / 12:29

5 respostas

9

O nome para este tipo de procedimento é OCR (reconhecimento óptico de caracteres). Esse link também oferece algumas opções:

gocr - A command line OCR
fuzzyocr - spamassassin plugin to check image attachments
libhocr0 - Hebrew OCR
ocrad - Optical Character Recognition program
ocrfeeder - Document layout analysis and optical character recognition system
ocropus - document analysis and OCR system
tesseract-ocr
cuneiform - multi-language OCR system 

E isso sugere que o Tesseract ( tutorial muito antigo ) é a melhor opção para eles. Então experimente.

    
por Rinzwind 10.05.2011 / 12:36
3

Um tempo atrás, avaliei os vários pacotes de OCR no Ubuntu, descobri que o Tesseract era o menos ruim deles (mas ruim o suficiente) e escrevi um script para o OCR (já que o Tesseract quer formatos de entrada obscuros como o TIFF). Aqui está o meu ~/bin/ocr :

#!/bin/sh
# usage: ocr filename.jpg
if test -z ""; then
    echo "usage: ocr filename.jpg [...]"
    echo "needs imagemagick and tesseract-ocr"
    echo "if tesseract fails, check if you've got tesseract-ocr-eng installed"
fi
tmpdir="$(mktemp -d)"
for fn in "$@"; do
  convert "$fn" "$tmpdir/page.tif"
  tesseract "$tmpdir/page.tif" "$tmpdir/page" 2>&1 | grep -v '^Tesseract Open Source OCR Engine$'
  cat "$tmpdir/page.txt"
  cp -i "$tmpdir/page.txt" "${fn%.jpg}.txt"
  rm "$tmpdir/page.tif" "$tmpdir/page.txt"
done
rm -r "$tmpdir"

O pré-processamento das imagens com o GIMP (convertendo para B & amp; W usando a ferramenta Limite) pareceu ter ajudado muito.

Espero que as coisas tenham melhorado desde então. Eu vi o nome OCR Feeder em posts recentemente, eu experimentei.

    
por Marius Gedminas 10.05.2011 / 14:39
2

O pacote Tesseract-ocr é a linha de comando. Se você quer um programa com uma GUI, eu uso "gscan2pdf" e você pode encontrá-lo no Ubuntu Software Center.

No gscan2pdf, tudo o que você precisa fazer é clicar no pequeno ícone de varredura próximo ao topo. Eu acho que dá duas ou três opções, GOCR, que não é muito bom, e Tesseract, que funciona admiravelmente. Escolha o Tesseract e, a partir desse ponto, você precisa clicar na guia apropriada para encontrar as configurações de resolução. Sua melhor aposta é de 300 ou mesmo 600 e Tesseract vai fazer bem.

Documentos mal digitalizados, tortos ou antigos não são convertidos corretamente. Boa sorte!

PS .. Eu continuo lendo que o Tesseract só pode ler imagens TIFF. Este não é o caso para mim. Eu posso importar JPG ou PNG também.

PPS ... desculpe pelas edições! Você também pode experimentar o OCRFeeder no centro de software. Eu ainda tenho que tentar embora.

    
por I Heart Ubuntu 12.05.2011 / 23:09
1

Encontrei isso, chama-se Tesseract OCR, espero que seja útil para você.

link

    
por scouser73 10.05.2011 / 14:24
0

Eu tenho o Linux Mint 17.2 x32 Canela. Provavelmente estes passos funcionariam no Ubuntu 14.04 x32 também.

  1. Instale o OCR Tesseract sudo apt-get instalar -y tesseract-ocr tesseract-ocr-eng Você pode adicionar outros idiomas instalando pacotes adicionais. Esta captura de tela é do synaptic: Pacotes de idiomas Tesseract no Synaptic

Usando o Tesseract

OPÇÃO 1 - por linha de comando abra o terminal, então vá para a pasta onde você mantém os arquivos de imagem (jpg, png) e execute o comando:

a) para converter todos os arquivos de imagem em texto

for i in *png; do b='basename "$i" .png'; tesseract -l eng "$i" "$b" text; done

Para mesclar todos os arquivos de texto em um, execute um comando cat *.txt >> all.txt

b) para converter todos os arquivos de imagem para arquivos hocr (aberto com o Firefox)

for i in *png; do b='basename "$i" .png'; tesseract -l eng "$i" "$b" hocr; done

OPÇÃO 2 - por GUI

a) Instale o gImageReader e use-o

sudo add-apt-repository -y ppa:sandromani/gimagereader
sudo apt-get update
sudo apt-get install -y gimagereader

b) A segunda aplicação é o VietOCR. A versão atual é 4.0, então baixe o VietOCR-4.0.zip

Descompacte arquivos e abra o VietOCR.jar por Java:

Abra o VietOCR por Java Se você não tiver o Java instalado, poderá instalá-lo a partir do repositório ou poderá instalar o Oracle Java 8 oficial. Etapas para instalar o Oracle Java 8 no Ubuntu 14.04

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

Eu recomendo o VietOCR, porque ele permite que você faça o OCR em arquivos PDF. A conversão em massa também é uma opção.

    
por anthony0013 28.11.2015 / 12:20