Como usar o OCR da linha de comando no Linux?

18

Eu tenho milhares de páginas de páginas de livros digitalizadas. Cada página é salva individualmente como um JPG. A escrita é clara, mas as fontes variam e as páginas incluem fotos e ilustrações.

Eu preciso criar uma lista de todas as palavras que aparecem em cada arquivo JPG. Existe uma ferramenta de linha de comando para digitalizar uma imagem listando as palavras que aparecem? Não precisa de uma digitalização perfeita, apenas uma estimativa.

    
por Village 09.07.2017 / 23:22

5 respostas

15

Instale imagemagick , pdftotext (encontrado em um pacote chamado poppler-utils dentro de alguns gerenciadores de pacotes) e ocrmypdf . O último é rápido (o OCr ocupa muito a CPU e é configurado para usar todos os seus núcleos), um software de OCR de código aberto e freqüentemente atualizado. Essa abordagem é possivelmente exagerada, já que ela realmente tenta atribuir uma string a cada palavra, em vez de simplesmente rotular uma palavra, mas eu tive muitas dificuldades para encontrar um software OCR de código aberto de maneira simples e fácil. Então, no diretório onde você salvou todos os seus JPGs:

$ convert *.jpg pictures.pdf
$ ocrmypdf pictures.pdf scanned.pdf
$ pdftotext scanned.pdf scanned.txt
$ wc -w scanned.txt
    
por 09.07.2017 / 23:45
14

tesseract é provavelmente a solução mais usada aqui. Está disponível na maioria dos repositórios de pacotes, por exemplo,

apt install tesseract-ocr

e pode ser usado com

tesseract input.png out.txt
    
por 09.08.2017 / 17:16
2

Imagem de alta qualidade file.png em 480%, altere para escala de cinza, preencha com branco, aponte e extraia usando o OCR tesseract. Ele funciona bem na maioria das vezes para mim, exceto para fontes muito grandes e branco sobre preto. Se as fontes forem muito grandes, somente upgrale 200% ou 300%.

 convert -colorspace gray -fill white  -resize 480%  -sharpen 0x1  file.png file.jpg
 tesseract file.jpg file

O resultado está no arquivo.txt.

    
por 07.02.2018 / 13:47
0

Para usuários do Linux, nada funciona tão bem quanto o uso do Caliber para converter pdf em docx. link

    
por 02.06.2018 / 01:02
0

TL; DR

for i in /path_to/*.jpg;do ./myocr.sh $i $(basename $i .jpg);done

#!/bin/bash
# PROGRAM=myocr.sh
if [ "$1" ] && [ -e "$1" ]; then
  TMPF=$(mktemp myocr.sh.XXXXXXXX.tif)
  DEST="$2"
  if [ ! "$DEST" ]; then
    DEST="${1%.*}.txt"
    if [ -e "$DEST" ]; then
      echo "$DEST already exists; please provide a new textfile name" >&2
      exit 1
    fi
  fi
  /usr/bin/convert "$1" -colorspace Gray -depth 8 -resample 200x200 -flatten -alpha Off $TMPF \
  && /usr/bin/tesseract $TMPF "$DEST"
  EX=$?
  /bin/rm -f $TMPF
  [ $EX -eq 0 ] && [ "$TERM" ] && echo "created $DEST"
  exit $EX
else
  echo "Usage: $0 imagefile [textfile]" >&2
  echo " creates a plain text file with the text found in imagefile" >&2
  exit 1
fi

Fonte: link

    
por 16.11.2018 / 16:21