Linienerfassungen führen oft zu verwenden Hough, Canny-Algorithmus und Konturerkennung Transformation nur als bequeme Pre-Prozessoren handeln.
Wenn parallelen Linien haben, verwenden
void HoughLines(InputArray image, OutputArray lines, double rho, double theta, int threshold, double srn=0, double stn=0)
zum Erfassen Linien, wo der zweite Parameter die Erfassung enthält:
Linien - Ausgangsvektor von Linien. Jede Linie wird durch einen Zwei-Element-Vektor (ρ, θ) dargestellt. ρ ist der Abstand von der Koordinate Ursprung (0, 0) (obere linke Ecke des Bildes). θ ist die Zeilenrotation Winkel im Bogenmaß (0 ~ vertikale Linie, & pgr;/2 ~ horizontale Linie).
[opencv2refman.pdf]
Dies bedeutet, dass der Abstand zwischen zwei Linien abs(rho1-rho2)
sein soll, dass die Abstände absolute Differenzen zwischen den Pixelwerten in der ersten Spalte der lines
sind. (Hinweis: Methode sollte CV_HOUGH_STANDARD
hier sein!)
Für nicht parallele Linien Sie müssen definieren, was man sich vorstellen als eine Entfernung, aber dann kann OpenCV Sie noch bietet mit den Koordinaten von Endpunkten jeder detektierten Linie.
Sie müssen nur method = CV_HOUGH_PROBABILISTIC
verwenden.
CV_HOUGH_PROBABILISTIC probabilistische Hough-Transformation (effizientere im Fall, wenn das Bild ein paar langen linearen Segmente enthält). Es gibt Zeilensegmente statt die gesamte Zeile zurück. Jedes Segment wird dargestellt durch Start- und Endpunkte, und die Matrix muss der CV_32SC4 Typ (Die Sequenz erstellt wird).
[opencv2refman.pdf]
Sie können auch ein Tutorial in opencv_tutorials.pdf
in der Dokumentation Ihres installierten OpenCV finden.
Sie müssen Ihrem Post keine Signatur hinzufügen - Ihre Benutzerkarte wird automatisch hinzugefügt. – Artemix