Wie kann ich Häkchen auf einem Papierformular verarbeiten / lesen?

7

Ich möchte eine große Anzahl gescannter Papierformulare (GUI oder Befehlszeile) verarbeiten. Ich möchte nur (benutzerdefinierte) Kontrollkästchen lesen. Das Formular sieht folgendermaßen aus:

  • Jede Linie hat 6 kreisförmige Kästchen (eines ist markiert)
  • Form hat mehr als 45 Zeilen

Nach der Verarbeitung möchte ich den geprüften Wert (1… 6) jeder Zeile haben. Ich gehe davon aus, da es keine Optical ist Character Recognition beteiligt (aber OMR ), sollte dies etwas einfacher sein.

Gibt es eine Möglichkeit, dies über die GUI oder die Befehlszeile zu tun? Was wäre der beste Ansatz?

AKTUALISIERT : Scans kommen in PDF oder JPEG (meine Wahl). Beispielscan (380 KB JPEG).

Hier ist eine anonymisierte Version des Formulars:

Papierformular verarbeitet werden

myhd
quelle
Haben Sie derzeit überhaupt eine Lösung für dieses Problem (außer der visuellen Überprüfung)?
Nohillside
Nein, ich habe momentan keine Lösung.
Myhd
1
Wenn Sie es also auf die Befehlszeile beschränken, werden möglicherweise Lösungen verhindert, die über eine grafische Benutzeroberfläche verfügen und dennoch innerhalb der Anwendung automatisiert werden können. Möchten Sie den Anwendungsbereich etwas erweitern, um nach Anwendungen zu suchen, die das Problem lösen?
Nohillside
@patrix Fertig !!!
Myhd
Welches Format haben die gescannten Dokumente?
Ruskes

Antworten:

4

Wenn Sie OCR vermeiden möchten, können Sie ImageMagick (ein Super-Toolset zur CLI-Bildmanipulation) verwenden. Sie müssen jedoch darauf achten, dass alle Seiten genau gleich ausgerichtet sind. Ich habe diesen Workflow zusammen gehackt. Sie müssen ihn an Ihre Bedürfnisse anpassen und einige Schleifen erstellen, aber er kann Ihnen in die richtige Richtung helfen.

Stellen Sie sicher, dass die Position jeder Runde auf jedem Blatt gleich ist

Extrahiere jede Runde und speichere sie mit dem row_circle-nr (wie 04_1.png, 04_2.png usw.)

x=$position_of_circle_on_x
y=$position_of_circle_on_y
w=$width_of_circle_area
h=$hight_of_circle_area
input=$input_image
output=$output_row_cirleNr
convert +repage $input -crop $wx$h+$x+$y $output

Berechnen Sie die Rotfläche mithilfe von Histogrammen ( ich bevorzuge Rot, aber Sie können dies auch für Schwarz tun ).

RGBO=$( convert $FILE -colorspace HSL -verbose info: | grep mean | awk '{print $2}' )
REDVALUE=$( echo $RGBO | awk '{print $1}'  | cut -d. -f1 )

Der größte REDVALUEgewinnt für jede Reihe

Nun, das ist es.

Wie installiere ich imagemagick?

Die Verwendung und Installation von ImageMagick kann einschüchternd sein, aber dieses Bildmanipulationspaket ist das leistungsstärkste, das mir bisher begegnet ist. Da die Installation von der Quelle für native OS X-Benutzer problematisch sein kann, empfehle ich Ihnen, Homebrew zu verwenden .

Um ImageMagick mit Homebrew zu installieren , führen Sie diesen Oneliner in Ihrem Terminal aus:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Homebrew ist jetzt installiert. Es ist ratsam, den Vorschlägen des Installationsprogramms nach der Installation zu folgen. Jetzt installieren wir ImageMagick mit brew.

brew install imagemagick

Jetzt können wir imagemagick und sein convertWerkzeug wie in den obigen Beispielen verwenden.

CousinCocaine
quelle
1

Ich bin ein Open-Source-Enthusiast und habe mir ImageMagic angesehen, um zu sehen, ob es sich um Open Source handelt. Das Projekt hat jedoch seinen Sitz in den USA. Ich möchte sehen, ob ich Ihnen mit einer Open-Source-Projektbasis der deutschen Universität namens SDAPS helfen kann.

SDAPS ist speziell ein OMR-Programm.

http://sdaps.org/SDAPS

Ich habe Ihre Testseite heruntergeladen und werde versuchen, sie zu verwenden, um mithilfe von SDAPS eine Antwort auf Ihre Frage zu geben.

Deesbek
quelle
Dieses Projekt sieht vielversprechend aus, ich freue mich auf Ihre Antwort ...
CousinCocaine
Ich glaube nicht, dass ich meine Antwort beenden werde, bevor das Kopfgeld abläuft, aber los geht's, die Arbeit steht an erster Stelle.
Deesbek
Ja, das ist ein Mist. Aber diese Software könnte einen besseren Job machen als mein Hack.
CousinCocaine