Koordinaten des gerahmten Textes auf einem Bild

Dec 18 2020

Ich möchte die Koordinaten des gerahmten Textes auf einem Bild erhalten. Die Absätze haben dünne schwarze Ränder. Der Rest des Bildes enthält übliche Absätze und Skizzen.

Hier ist ein Beispiel:

Haben Sie eine Vorstellung davon, welche Art von Algorithmen ich in Python mit einer Bildbibliothek verwenden sollte, um dies zu erreichen? Vielen Dank.

Antworten

2 alecxe Dec 18 2020 at 18:02

Einige Ideen, um einen gerahmten Text zu erkennen, der hauptsächlich auf die Suche nach Feldern / Rechtecken von beträchtlicher Größe zurückzuführen ist:

  • Finden Sie Konturen mit OpenCV, analysieren Sie Formen mithilfe des Polygon-Approximationsalgorithmus (auch als Ramer-Douglas-Peucker-Algorithmus bekannt ). Sie können zusätzlich das Seitenverhältnis des Begrenzungsrahmens überprüfen, um sicherzustellen, dass die Form ein Rechteck ist, sowie die Seitenbreite, da dies in Ihrem Fall eine bekannte Metrik zu sein scheint. PyImageSearch hat diesen erstaunlichen Artikel geschrieben:cv2.approxPolyDP()

    • OpenCV-Formerkennung
  • In einer verwandten Frage gibt es auch einen Vorschlag, in Hough-Linien zu schauen , um eine horizontale Linie zu erkennen, und eine Runde zu machen, um vertikale Linien auf die gleiche Weise zu erkennen. Nicht 100% sicher, wie zuverlässig dieser Ansatz wäre.


Sobald Sie die Rahmen gefunden haben, müssen Sie im nächsten Schritt prüfen, ob sich Text in ihnen befindet. Das Erkennen von Text ist im Allgemeinen ein größeres Problem, und es gibt viele Möglichkeiten, dies zu tun. Hier einige Beispiele:

  • Wenden Sie den EAST-Textdetektor an

  • PixelLink

  • tesseract (zB via pytesseract) aber nicht sicher, ob dies nicht zu viele Fehlalarme hätte

  • Wenn es einfacher ist, dass Kästchen leer sind oder nicht, können Sie nach durchschnittlichen Pixelwerten suchen - z cv2.countNonZero(). B. mit . Beispiele:

    • So identifizieren Sie leere Rechtecke mit OpenCV
    • Zählen Sie die schwarzen Pixel mit OpenCV

Zusätzliche Referenzen:

  • Ideen zur Viereck- / Rechteckerkennung unter Verwendung von Faltungs-Neuronalen Netzen