Wyodrębnij tekst ze zeskanowanego dokumentu

10

Czy istnieje sposób na wybranie tekstu ze zeskanowanego dokumentu? (wyjście to jpg) Jakie narzędzia oferuje Ubuntu do wykonywania takich zadań? Czy są jakieś biblioteki, których mogę używać zamiast gotowych plików binarnych do robienia tego samego? Próbowałem przekonwertować go na format .pdf za pomocą Imagemagick, a następnie próbowałem zaznaczyć tekst, co oczywiście nie zadziałało.

Dananjaya
źródło

Odpowiedzi:

9

Nazwa tego typu procedury to OCR (optyczne rozpoznawanie znaków). Ten link oferuje również kilka opcji:

gocr - OCR wiersza poleceń
fuzzyocr - wtyczka spamassassin do sprawdzania załączników obrazów
libhocr0 - hebrajski OCR
ocrad - program optycznego rozpoznawania znaków
ocrfeeder - Analiza układu dokumentu i optyczny system rozpoznawania znaków
ocropus - analiza dokumentów i system OCR
tesseract-ocr
pismo klinowe - wielojęzyczny system OCR 

Sugeruje to, że Tesseract ( bardzo stary samouczek ) jest lepszą opcją. Więc, spróbuj.

Rinzwind
źródło
3

Jakiś czas temu oceniłem różne pakiety OCR w Ubuntu, odkryłem, że Tesseract był najmniej zły (ale wystarczająco zły) i napisałem skrypt otoki dla OCRing (ponieważ Tesseract chce niejasnych formatów wejściowych, takich jak TIFF). Oto moje ~/bin/ocr:

#!/bin/sh
# usage: ocr filename.jpg
if test -z "$1"; 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"

Wstępne przetwarzanie obrazów za pomocą GIMP (konwersja do B&W za pomocą narzędzia Threshold) wydawało się bardzo pomocne.

Mam nadzieję, że od tego czasu wszystko się poprawiło. Ostatnio widziałem nazwę OCR Feeder w postach na blogu, spróbuję.

Marius Gedminas
źródło
2

Pakiet Tesseract-ocr jest wierszem poleceń. Jeśli chcesz program z GUI, używam „gscan2pdf” i możesz go znaleźć w Centrum oprogramowania Ubuntu.

W gscan2pdf wystarczy kliknąć małą ikonę skanowania u góry. Myślę, że daje dwie lub trzy opcje, GOCR, który nie jest bardzo dobry, i Tesseract, który działa znakomicie. Wybierz Tesseract i od tego momentu musisz kliknąć odpowiednią kartę, aby znaleźć ustawienia rozdzielczości. Twój najlepszy zakład to 300 lub nawet 600, a Tesseract da sobie radę.

Źle zeskanowane, krzywe lub stare dokumenty nie są dobrze konwertowane. Powodzenia!

PS .. Ciągle czytam, że Tesseract może czytać tylko obrazy TIFF. To nie dotyczy mnie. Mogę również importować JPG lub PNG.

PPS ... przepraszam za zmiany! Możesz spróbować OCRFeeder również w centrum oprogramowania. Jednak jeszcze tego nie spróbowałem.

I Heart Ubuntu
źródło
0

Mam Linux Mint 17.2 x32 Cynamon. Prawdopodobnie te kroki będą działać również w Ubuntu 14.04 x32.

  1. Zainstaluj Tesseract OCR sudo apt-get install -y tesseract-ocr tesseract-ocr-eng Możesz dodać inne języki, instalując dodatkowe pakiety. Ten zrzut ekranu pochodzi z synaptic: pakiety językowe Tesseract w Synaptic

Korzystanie z Tesseract

OPCJA 1 - z poziomu wiersza poleceń otwórz terminal, a następnie przejdź do folderu, w którym przechowujesz pliki obrazów (jpg, png) i uruchom polecenie:

a) przekonwertować wszystkie pliki graficzne na tekst

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

Aby scalić wszystkie pliki tekstowe w jeden, uruchom polecenie cat *.txt >> all.txt

b) przekonwertować wszystkie pliki graficzne na pliki hocr (otwarte w przeglądarce Firefox)

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

OPCJA 2 - przez GUI

a) Zainstaluj gImageReader i użyj go

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

b) Drugim zastosowaniem jest VietOCR. Rzeczywista wersja to 4.0, więc pobierz VietOCR-4.0.zip

Rozpakuj pliki i otwórz VietOCR.jar przez Java:

Otwórz VietOCR przez Javę Jeśli nie masz zainstalowanej Java, możesz zainstalować ją z repozytorium lub możesz zainstalować oficjalną Oracle Java 8. Kroki instalacji Oracle Java 8 w 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

Polecam VietOCR, ponieważ pozwala OCR na pliki pdf, konwersja zbiorcza jest również opcją.

anthony0013
źródło