MinAreaRect-Winkel - Ungewiss über den zurückgegebenen Winkel
Den Funktionen für MinAreaRect, tut es wieder Winkel im Bereich von 0-360 Grad?
Ich bin nicht sicher, wie ich ein Objekt, das ausgerichtet ist auf 90 Grad oder so, aber ich bekomme immer entweder den Wert -1 oder -15 Grad. Könnte dies ein openCV Fehler?
Jede Beratung sehr geschätzt.
Dank
InformationsquelleAutor der Frage | 2013-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, du bist mit C++, aber die Antwort sollten die gleichen sein, wenn Sie mit C oder Python.
Die Funktion
minAreaRect
zu geben scheint Winkel zwischen -90 bis 0 Grad, nicht einschließlich der null, also ein Intervall [-90, 0).Die Funktion gibt -90 Grad, wenn das Rechteck gibt es nicht gedreht, d.h. das Rechteck hat zwei Seiten genau waagerecht und auf beiden Seiten genau senkrecht. Wie das Rechteck im Uhrzeigersinn dreht, wird der Winkel größer wird (geht gegen null). Wenn null erreicht ist, ist der Winkel gegeben durch die Funktion Zecken wieder auf -90 Grad wieder.
Also, wenn Sie ein langes Rechteck aus
minAreaRect
und es liegen flachminAreaRect
rufen Sie den Winkel -90 Grad. Wenn Sie das Bild drehen, bis das Rechteck gegeben durchminAreaRect
ist perfekt aufrecht, dann der Winkel wird sagen -90 Grad wieder.Ich wollte eigentlich nicht wissen, jede dieser, (ich zögerten aus meiner OpenCV-Projekt, um herauszufinden, wie es funktioniert :/). Wie auch immer, hier ist ein OpenCV Programm, das zeigt
minAreaRect
wenn ich nicht erklärt es klar genug bereits:Dadurch können Sie problemlos sehen, wie sich der Winkel und die Form, eine manuell gezeichnete Rechteck im Vergleich zu den
minAreaRect
interpretation des gleichen Rechtecks.InformationsquelleAutor der Antwort Adam Goodwin
Verbesserung auf die Antwort von @Adam Goodwin möchte ich hinzufügen, dass mein kleiner code, ändert sich das Verhalten ein wenig:
Wollte ich die Winkel zwischen der längeren Seite und die vertikale (für mich ist es die natürlichste Art und Weise zu denken, gedrehte Rechtecke):
Wenn Sie müssen, verwenden Sie einfach diesen code:
Zu sehen, Sie in Aktion fügen Sie Sie einfach in Adam Goodwins-code:
InformationsquelleAutor der Antwort Sebastian Schmitz
Nach experiment, finde ich, dass, wenn die long-Seite ist in der linken unteren Punkt, der Wert für den Winkel zwischen der langen Seite und der Y+ Achse, aber wenn die lange Seite ist in der rechten unteren Punkt, der Wert für den Winkel zwischen der langen Seite und X+ - Achse.
Also ich benutze den code wie folgt(java):
Wird der Winkel von 0 bis 180.
InformationsquelleAutor der Antwort silentteen