Wie kann man mit dem OCR-Tool pdfsandwich verzerrte Ergebnisse vermeiden?

962
lalebarde

In der Regel müssen gescannte Seiten vor dem Anwenden eines OCR-Tools schräggestellt werden. Hier ist meine Eingabe eine gerade gescannte Seite, und der OCR-Ausgang ist manchmal im oder gegen den Uhrzeigersinn schief. In meinem Anwendungsfall eines 260-seitigen englischen Buches geschieht dies für 14 Seiten.

Beispiel: input.pdf: input.pdf

output.pdf output.pdf

Befehl:

convert -density 300 -quality 100 input.pdf -level 0%,100%,4.0 -black-threshold 75% convert.pdf && pdfsandwich -noimage -coo "-normalize -density 300 -black-threshold 75%" convert.pdf -o output.pdf 

Wie kann ich diesen Ausgabewinkel vermeiden?

Wie kann ich die Ausgabe alternieren, ohne die OCR zu verlieren? Alle Methoden und Werkzeuge, die ich gefunden habe, werden zuerst in ein Bildformat konvertiert, wodurch die OCR verloren geht. Dann ist sie hier unbrauchbar.

0

1 Antwort auf die Frage

0
lalebarde

Dank Remy F konnte ich diese Lösung mit Hilfe dieser LaTeX-Datei schreiben, die output.pdf importiert, und sie drehen:

\documentclass  \usepackage[paperwidth=6.38in,paperheight=10.32in,bindingoffset=0in,top=-0.39in,bottom=0in,left=-0.29in,right=0in,footskip=0in] \usepackage  \begin  \pagestyle \begin[t] \includegraphics[scale=0.233,angle=-4]  \end  \end 

Dann:

pdflatex output_tex.tex 

Erzeugt output_tex.pdf:

Es wäre schön, wenn Sie die Skalierung und die Ränder automatisch anpassen möchten, um den Prozess automatisieren zu können.

BEARBEITEN: Ich habe einige Fortschritte erzielt, um den Winkel für die Neigung automatisch zu erhalten:

angle=`convert output.pdf -deskew 40 -format "%[deskew:angle]" info:` 

Wenn ich automatisiere, führt das zu:

#/bin/bash name=$ ext=$ convert -density 300 -quality 100 $.$ext -level 0%,100%,4.0 -black-threshold 75% $_convert.$ext pdfsandwich -noimage -coo "-normalize -density 300 -black-threshold 75%" $_convert.$ext -o $_ocr.$ext angle=`convert $_ocr.$ext -deskew 40 -format "%[deskew:angle]" info:` angle=`echo "$*-1" | bc` echo " angle = $angle" sed -e "s/ANGLE/$angle/" -e "s/FILE/$_ocr.$ext/" /var/ocr/pdfrotate.tex > $_ocr_straight.tex pdflatex $_ocr_straight.tex rm $_convert.$ext $_ocr_straight.tex $_ocr_straight.aux $_ocr_straight.log 

Mit /var/ocr/pdfrotate.tex:

\documentclass \usepackage[paperwidth=6.38in,paperheight=10.32in,bindingoffset=0in,top=-0.39in,bottom=0in,left=-0.29in,right=0in,footskip=0in] \usepackage \begin \pagestyle \begin[t] \includegraphics[scale=0.233,angle=ANGLE] \end \end 

Die Skala sieht richtig aus und ist abhängig vom Dokument. Leider passen die Geometrieparameter oben und links, die ich für meine Testseite eingestellt habe, nicht für andere Seiten. Ich weiß nicht, wie ich sie automatisieren soll. Möglicherweise durch Verwischen der Originalseite und des Ergebnisses und Durchführen einer Optimierung einer Korrelation von ihnen mit den Parametern top und left.