Ich versuche Rechtecke in Bildern zu erkennen. Der Hintergrund der Bilder ist (meistens) einfarbig. Ich habe zwei Methoden ausprobiert, um ein Binärbild (1 = Hintergrund, 0 = Kanten) zu erhalten und später eine Hough-Transformation durchzuführen ...
Sobel oder Canny Filter
Bild glätten A, Differenzbild erstellen A - Gauss, Binärbild mit Schwelle erstellen (Histogramm erstellen, oberste Bin sollte Hintergrund sein ...)
Das Ergebnis ist ein Binärbild mit Kanten. Ich weiß jetzt nicht wirklich, welche Methode für eine Vielzahl von verschiedenen Bildern besser funktioniert. Irgendwelche Ideen?
image-processing
Martin Thompson
quelle
quelle
Antworten:
Ich habe einmal eine Anwendung zur Rechteckerkennung geschrieben. Es wurden die Sobel-Kantenerkennung und die Line-Hough-Transformation verwendet.
Anstatt einzelne Peaks im Hough-Bild (Linien) zu suchen, hat das Programm 4 Peaks mit einem Abstand von 90 Grad zwischen ihnen gesucht.
Für jede Spalte im Hough-Bild (entsprechend einem bestimmten Winkel) wurden drei weitere Spalten nach lokalen Maxima durchsucht. Wenn in jeder der vier Spalten ein zufriedenstellender Peak gefunden wurde, wurde das Rechteck erkannt.
Das Programm erstellte das Rechteck und überprüfte zusätzlich die Farbkonsistenz innerhalb und außerhalb des Rechtecks, um falsche Positive zu erkennen. Das Programm diente zum Erkennen der Papierplatzierung in gescannten Papierbögen.
quelle
Möglicherweise ist der Laplace-Gauß-Kantendetektor die bessere Wahl. Es sollte Ihnen häufiger geschlossene Konturen geben als der Canny-Kantendetektor. Ich glaube, das ist es, was Sie wollen, da Ihr nächster Schritt darin besteht, die Hough-Transformation anzuwenden.
quelle
Könnte hilfreich für Sie sein, aber es ist zu spät, als ich diese Seite heute besuche
quelle
Wenn Ihr Bild relativ sauber ist, haben Sie offensichtliche Rechtecke ohne viele Unterbrechungen. Die Alternative zu einer Hough-Transformation besteht darin, Konturen zu erstellen und zu verkleinern, bis sie eine vierseitige Kontur = Ihr Rechteck bilden.
Dafür gibt es opencv-Beispiele
quelle
Python-Tutorial zum Finden von von Grund auf neu geschriebenen Rechtecken . Verwendet Canny und Hough Lines.
quelle