Lesezeit von analoger Uhr mit Hough Line Transform in Python (OpenCV)

Ich habe versucht, ein Programm zu schreiben, das das Gesicht der Uhr auf dem Bild lokalisiert und dann fortfährt, Zeit von ihm zu lesen. Lokalisierung funktioniert ziemlich gut, Lesezeit – nicht so sehr.

Die Funktion cv2.HoughLines gibt die Winkel zurück, an denen die Zeilen liegen (Messung von der Oberseite des Bildes) und deren Abstand von der oberen linken Ecke des Bildes. Nach ein bisschen Tweaking habe ich es geschafft, meinen Code zu überzeugen, um eine einzelne Zeile für jede Uhr der Uhr zu finden, aber wie jetzt bin ich nicht in der Lage, tatsächlich Zeit von ihm zu lesen.

  • Pandas transform () vs apply ()
  • Erkennung von berührenden / überlappenden Kreisen / Ellipsen mit OpenCV und Python
  • OpenCV Python HoughCircles Fehler
  • Die Ausgabe von meinem C ++ OpenCV Hough Circle Detection und von meinem Python OpenCV Hough Circle Detection ist anders
  • OpenCV Hough Circle Transform benötigt 8-Bit-Bild
  • Probabilistische Hough-Transformation in OpenCV 2.4.9 (Python)
  • Mit geeigneten Formeln konnte ich einen Schnittpunkt von diesen Linien (Mitte der Uhr) finden und dann die Hände in beide Richtungen gleichzeitig durchführen. Dies könnte mir sagen, die Länge jeder Hand (erlaubt mir, sie auseinander zu teilen) sowie in welcher Richtung sind sie zeigen. Ich bin ziemlich zögernd, diese Lösung zu implementieren – nicht nur scheint es irgendwie hässlich, sondern schafft auch gewisse Risiken. Zum Beispiel: Probleme mit Rundungen könnten dazu führen, dass das Programm das falsche Pixel überprüft und das Ende der Zeile vorzeitig findet.

    Also, würdest du eine alternative Lösung vorschlagen?

  • Python destructuring-bind Wörterbuchinhalt
  • Bestellen von Enum-Wert in Python
  • Python-Versuch endlich blockieren zurück [duplizieren]
  • Wie bekomme ich eine Liste in einem Wörterbuch mit json.dumps ()
  • Iterating over Wörterbuch gibt Schlüssel in sortierter Reihenfolge zurück
  • Bestellt Sets Python 2.7
  • One Solution collect form web for “Lesezeit von analoger Uhr mit Hough Line Transform in Python (OpenCV)”

    Ich habe es geschafft, mein Problem zu lösen.

    Ich habe versucht, Hough Line Transform zu verwenden, wo ich Hough Probabilistic Transform verwenden sollte. In dem Augenblick, in dem ich es bekam, gruppierte ich die Linien, die auf ähnliche Funktionen gezogen waren, sortiert sie nach Länge und benutzten arcsine sowie Orte ihrer Enden, um genaue Grade bei wchich Hände zu finden.

    Python ist die beste Programmiersprache der Welt.