Ich möchte den Text aus dem folgenden Bild so gut wie möglich rekonstruieren. Der schwierige Teil ist, dass ich es nur mit morphorogischen Operationen auf dem Bild tun möchte
Ich habe versucht, Erosion, Dilatation, Öffnen und Schließen zu verwenden, aber das Ergebnis ist nicht sehr gut.
Ist das überhaupt möglich?
image-processing
morphological-operations
Jackobsen
quelle
quelle
Antworten:
Wenn Sie morphologisch transformierte Bilder hinzufügen / subtrahieren möchten, können Sie die Anzahl der Signalpixel in der Nähe jedes Pixels und den Schwellenwert basierend auf dieser Anzahl zählen.
Wenn Sie dann eine 3x3-Maske mit einem Loch in der Mitte verwenden, erhalten Sie Folgendes:
quelle
Dies ist ein interessantes Problem, das es zu lösen gilt! Versuchen Sie es mit einem Medianfilter . Weitere Informationen finden Sie in der Referenz hier und hier .
Obwohl ich nicht meine Hände gelegt habe, um Ihr Problem zu simulieren, ist dies ein Vorschlag. Mein Bauchgefühl sagt, dass es Ihnen großen Nutzen bringen könnte, denn es ist bekannt, dass es Geräuschen vom Typ Salz und Pfeffer entgegenwirkt. In Ihrem Fall haben die Bilder zusätzliche weiße Punkte um den Rand, die je nach der Seite des Alphabets entweder in volles Weiß oder in volles Schwarz umgewandelt werden. So sieht es nach der Medianfilterung aus:
quelle
Wenn Sie sich aus irgendeinem Grund auf die Verwendung morphologischer Operationen beschränken, können Sie ein "Abstimmungsschema" für orientierte Abschlussoperationen in Betracht ziehen.
Ein Problem bei morphologischen Operationen ist, dass sie die Richtwirkung nicht wirklich berücksichtigen. Für das mittlere Pixel eine Nachbarschaft wie diese
ist wirklich nicht anders als eine Nachbarschaft wie diese
Dies kann zu Problemen führen, da Dehnung und Erosion nicht direktional beeinflusst werden, wenn Sie dies wünschen. Sie können also die am besten geeignete richtungsabhängige morphologische Operation finden, indem Sie Kernel wie diese verwenden:
Dies wäre mit 5 x 5-Kerneln besser, aber ich denke, die Idee ist klar genug. Grundsätzlich ist die Idee eines Eckenerkennungskerns etwas gedehnt, sodass es sich um einen Liniensegmenterkennungskern handelt. Sie können es auch verwenden, um die am besten passenden Kurven zu finden:
Dies führt natürlich zu einer großen Anzahl von Kerneln, aber wenn die Grundidee für Sie vielversprechend ist, können Sie die Technik so optimieren, dass der am besten passende Kernel in einem Durchgang gefunden wird.
In jedem Fall erfordert jede Operation bei (x, y) mehr Berechnungen als ein herkömmlicher morphologischer Schritt, wenn Sie mehrere Kernel und eine bestimmte Logik verwenden:
Die Größe des Kernels muss an die Größe der Eingabe angepasst werden. Anstatt einen größeren Kernel zu verwenden, könnten Sie einen "verteilten" Kernel verwenden, um die Anzahl der Operationen zu verringern. Der folgende Kernel ist nur ein 3 x 3-Kernel mit einem Radius größer als 1.
quelle