LineSegmentDetector in Opencv mit Python 3
Kann ein sample-code oder ein Zeiger bereitgestellt werden, die für die Umsetzung LSD mit opencv 3.0 und python? HoughLines und HoughLinesP nicht die gewünschten Ergebnisse in python und testen möchten, LSD in python, aber ich bin nicht immer überall.
Habe ich versucht, Folgendes zu tun:
LSD=cv2.createLineSegmentDetector(0)
lines_std=LSD.detect(mixChl)
LSD.drawSegments(mask,lines_std)
Allerdings, wenn ich Linien zeichnen auf der Maske, bekomme ich eine Fehlermeldung die lautet:
LSD.drawSegments(Maske,lines_std) TypeError: Zeilen ist nicht ein numerisches Tupel
Kann mir bitte jemand helfen mit diesem?
Vielen Dank im Voraus.
- Leider, die LSD-Detektor entfernt worden war, seit der version 4.1.0: github.com/opencv/opencv/commit/...
- Sind Sie Kenntnis von einer ähnlichen Linie-segment-Detektoren wie LSD?
- Leider, LSD ist schwer zu schlagen, aber Sie können versuchen, zu verwenden
cv2.ximgproc.createFastLineDetector()
aus contrib-Modul. - Ja. Es ist bedauerlich, dass Sie hatte, um es zu entfernen. Danke für den Tipp auf
FastLineDetector
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie cv2.drawSegments Funktion wie diese:
Können Sie überprüfen, OpenCV Dokumentation.
lsd.detect(img)[1]
? Sind Sie der Deskriptoren?0
imcv2.createLineSegmentDetector(0)
bedeuten? Danke.War ich in der Lage zu zeichnen Sie die Linien in OpenCV 3.2.0 mit den folgenden:
Ich bin nicht sicher, warum alle, die extra [0] Dereferenzierung, aber das scheint das zu sein, was es nimmt, um zu extrahieren die Koordinaten.
Beim Auspacken OpenCV gibt, habe ich es nützlich gefunden, nur drucken, was auf der Konsole. In diesem Fall habe ich
Aus allen verschachtelte eckige Klammern, oft arbeite ich an einer Lösung, ohne sich sorgen zu viel über das warum und weshalb von allem.
Ich hatte vorher eine Windows-DLL-version von LSD, die ich zusammengestellt von den Autoren an der Quelle und rief mit ctypes.
Die akzeptierte Antwort, funktioniert Prima, wenn Sie nach dem zeichnen der Linien. Allerdings, wenn Sie möchten, eine feiner abgestimmte Kontrolle über die Linien und Ihre Zeichnung können Sie die Schleife über die Zeilen und mit Ihnen umgehen, individuell wie vorgeschlagen. Nur eine sauberere Variante wäre: