OpenCV: Erhalten Hough Akku-Wert?

8

Ist es möglich, den Akkumulatorwert zusammen mit rho und theta von einer Hough-Transformation zu erhalten?

Ich frage, weil ich zwischen Zeilen unterscheiden möchte, die "gut definiert" sind (dh die einen hohen Akkumulatorwert haben) und Zeilen, die nicht so gut definiert sind.

Danke!

    
David Wolever 16.07.2010, 14:40
quelle

2 Antworten

13

Ok, wenn man also die Datei cvhough.cpp betrachtet, wird die Struktur CvLinePolar nur durch rho und angle definiert.

Das ist alles, was als Ergebnis unseres Aufrufs an HoughLines zurückgeschickt wird. Ich bin dabei, die C ++ Datei zu ändern und zu sehen, ob ich die Stimmen rausbekomme.

Update am 26. Oktober: Habe gerade gemerkt, dass das nicht wirklich Antworten sind, sondern mehr wie Fragen. anscheinend verpönt. Ich habe einige Anweisungen zum Neukompilieren von OpenCV gefunden. Ich denke, wir müssen in den Code gehen und ihn modifizieren und neu kompilieren. Wie installiert man OpenCV 2.0 auf win32

update Okt 27: Nun, ich habe es versäumt, die DLLs für OpenCV mit meinem neuen Code zu kompilieren, also habe ich die spezifischen Teile, die ich modifizieren möchte, in meine eigenen Dateien kopiert. Ich möchte neue Funktionen hinzufügen, um die bereits definierten Funktionen nicht zu überlasten. Es gibt 4 Dinge, die du kopieren musst: 1- einige zufällig definiert

%Vor%

2- Neudefinieren der Struktur für Linienparameter

%Vor%

3- die Hauptfunktion, die geändert wurde

%Vor%

4- die Funktion, die diese Funktion aufruft

%Vor%

Und ich denke, du könntest opencv deinstallieren, so dass es alle diese automatischen Pfadeinstellungen entfernt und es mit der CMake-Methode selbst kompiliert und dann ist der OpenCV wirklich was du auch machst.

    
Denis 26.10.2010, 00:30
quelle
2

Obwohl dies eine alte Frage ist, hatte ich das gleiche Problem, also könnte ich auch meine Lösung aufstellen. Der Schwellenwert in houghlines () gibt 1 für jeden Punkt zurück, der den Schwellenwert für die Voten gelöscht hat. Die Lösung besteht darin, Houghlines () für jeden Schwellenwert auszuführen (bis keine Stimmen mehr vorhanden sind) und die Stimmen in einem anderen Array zu addieren. In Python (vielleicht auch mit anderen Sprachen), wenn Sie keine Stimmen mehr haben, wird ein Fehler ausgegeben, also verwenden Sie try / except.

Hier ist ein Beispiel in Python. Das Array, das ich verwendet habe, war für Rho-Werte von -199 bis 200 mit einer maximalen Stimme von weniger als 100. Sie können mit diesen Konstanten nach Ihren Bedürfnissen spielen. Möglicherweise müssen Sie eine Zeile hinzufügen, um das Quellbild in Graustufen zu konvertieren.

%Vor%     
Norbles 06.01.2014 11:37
quelle

Tags und Links