Entfernen lange horizontale/vertikale Linien vom Rand Bild mit OpenCV

Wie kann ich ein standard-image-processing-Filter (von OpenCV) zu entfernen, lange horizontale und vertikale Linien, die aus einem Bild?

Den Bildern sind die B&W so entfernen bedeutet einfach nur malen schwarz.

Illustration:

Entfernen lange horizontale/vertikale Linien vom Rand Bild mit OpenCV

Ich bin derzeit dabei, die es in Python, zu iterieren über die pixel-Zeilen und Spalten und zu erkennen reicht von aufeinander folgenden Pixeln, entfernen diejenigen, die länger sind als N Pixel. Aber, es ist wirklich sehr langsam im Vergleich zu der OpenCV-Bibliothek, und wenn es einen Weg gibt, erreichen das gleiche mit OpenCV-Funktionen, die wahrscheinlich um Größenordnungen schneller.

Ich mir vorstellen, dies kann durch Faltung mit einem Kern, der eine Reihe von Pixeln (horizontale Linien), aber ich habe eine harte Zeit, herauszufinden, den genauen Vorgang, würde den trick tun.

  • Nur schnelles denken hier. Warum kommst du nicht mit Hough-Line-Detektion zu finden, Linien und tun, was Sie wollen über die Zeilen, die Sie ausgewählt?
  • Yep war über post die gleiche Sache betrachten, docs und der Theorie, wenn nötig.
  • Es scheint, die Rückkehr lange Liniensegmente aufgeteilt in viele kleine Bilder, die Ruinen der Fähigkeit heraus zu filtern, die nicht ausreichend lange... keine Ahnung, warum das passieren würde?
InformationsquelleAutor Assaf Lavie | 2013-09-30
Schreibe einen Kommentar