Drehen eines Punktes um einen Punkt mit OpenCV
Weiß jemand wie ich das drehen kann, ein Punkt, der um einen anderen in OpenCV?
Ich bin auf der Suche nach einer Funktion wie folgt:
Point2f rotatePoint(Point2f p1, Point2f center, float angle)
{
/* MAGIC */
}
InformationsquelleAutor der Frage user1021793 | 2011-10-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Schritte sind notwendig, um zu drehen, einen Punkt um einen anderen Punkt um einen Winkel alpha:
Die standard-Gleichung für die rotation:
x' = xcos(alpha) - ysin(alpha)
y' = xsin(alpha) + ycos(alpha)
Nehmen wir das Beispiel von Punkt(15,5) um den Punkt(2,2) von 45 Grad.
Erstens, zu übersetzen:
v = (15,5) - (2,2) = (13,3)
Nun drehen von 45°:
v = (13*cos 45° - 3*sin 45°, 13*sin 45° + 3*cos 45°) = (7.07.., 11.31..)
Und schließlich, zu übersetzen, zurück:
v = v + (2,2) = (9.07.., 13.31..)
Hinweis: der Winkel muss im Bogenmaß angegeben, so multiplizieren Sie die Anzahl der Grad von
Pi /180
InformationsquelleAutor der Antwort Adrian
Drehen Punkt
p1 = (x1, y1)
ump (x0, y0)
durch Winkela
:wo
(x2, y2)
ist die neue Position des Punktesp1
InformationsquelleAutor der Antwort razzak
Wenn Sie bereits Punkte in form von RotatedRectkönnen Sie den Winkel ändern, es zu drehen Sie die Punkte.
InformationsquelleAutor der Antwort ruwan800
Dies könnte helfen,
InformationsquelleAutor der Antwort Yonatan Simson
Ich war auf der Suche für die transformation von beliebigen pixel Koordinate des Bildes, und ich konnte kaum finden durch googeln es. Irgendwie fand ich einen link von python-code korrekt funktionieren, und das hat mir geholfen, zu verstehen, die Frage:
https://cristianpb.github.io/blog/image-rotation-opencv
Folgenden ist der entsprechende C++ - code, wenn jemand nach ihm sucht:
InformationsquelleAutor der Antwort Spandan