OCR für Zahlen mit grauem verrauschtem Hintergrund


7

Ich habe versucht, OCR auf mehreren gescannten Blättern mit Zahlen wie diesem Bild auszuführen (alle mit demselben Hintergrund, nur Ziffern):

Geben Sie hier die Bildbeschreibung ein

Aber alle Versuche sind gescheitert! Ich habe Offline-OCRs ausprobiert: gocr, tesseract und einige Online-OCRs; aber alles ist total gescheitert!

Was sollte ich tun?

Antworten:


8

Zuerst müssen Sie diese Bilder optimieren. Ich empfehle ein Batch-Tool wie XnViewMP, das kostenlos und plattformübergreifend ist.

Es hat einen Datei-Explorer. Wählen Sie alle Ihre Bilder aus und gehen Sie zu Extras - Stapelkonvertierung . Fügen Sie Aktionen wie ich hinzu:

XNViewMP - Stapelkonvertierung - Registerkarte Aktionen

Hier sind meine Aktionen:

  1. HLS - machen Sie es Graustufen:
    • Farbton: 0
    • Leichtigkeit: 0
    • Sättigung: -127
  2. Pegel - senken Sie den Schwarzpegel etwas, damit das graue Rauschen verschwindet
    • Schwarzpunkt: 0
    • Weißpunkt: 212 - kann je nach Bild variieren
  3. Lärmminderung Filter
  4. Zum Erhöhen des Kontrasts anpassen
    • Helligkeit: 0
    • Kontrast: 127 - das ist wichtig
    • Gamma: 1,06
  5. Minimum, um das Schwarz dicker zu machen
    • Filtergröße: 5x5 - kann je nach Bild variieren

Vergessen Sie nicht, unter zu speichern tiff(siehe Registerkarte Ausgabe ). Danach renne ich tesseract:

tesseract test.tif text -psm 7

Hinweis Ich habe den PSM-Modus 7 ausgewählt: Behandle das Bild als einzelne Textzeile. Wenn Sie mehrere Zeilen haben, müssen Sie wahrscheinlich Modus 6 oder 3 verwenden.

Und hier ist der Inhalt der text.txtAusgabedatei:

570 394 666 638 043

2
Ich frage mich, ob diese Aktionen auch mit GraphicsMagick ausgeführt werden können .
Cristian Ciupitu

2

Ich habe versucht, Ihr Bild mit der OCR-Technologie von ABBYY zu erkennen : OCR SDK Ergebnis

Weitere Informationen zu den Produkten von ABBYY finden Sie unter abbyy.com .
Ich arbeite für ABBYY und bin bereit zu helfen, wenn Sie Fragen haben.


Gibt es einen Nur-Ziffern-Modus? So erhöhen Sie die Erkennungsrate von zerkratzten Bildern?
ItsMe

0
  import cv2
  import numpy as np
  import pytesseract

  im= cv2.imread('noisyNumbers.png',cv2.IMREAD_GRAYSCALE)

  cv2.imshow('Gray', im)
  cv2.imwrite('noisyNumbers.jpg', im)

  print(pytesseract.image_to_string(Image.open('noisyNumbers.jpg')))

1
Willkommen bei Super User! Können Sie Ihre Antwort bearbeiten , um den oben angegebenen Code zu erklären? Vielen Dank!
Bertieb
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.