Das ist jetzt zwar kein Grafik/Spieleproblem, aber da die mathematischen Grundlagen die gleichen sind, frage ich einfach mal hier:
Ich habe eine Kamera, die mir ein Bild von einem flachen Objekt aufnimmt. Dieses Objekt wird immer in gleichem Abstand und immer parallel zur Kamera abgelegt - allerdings gerne mal verschoben.
Mittels OpenCV mache ich nun auf dieses Bild eine Mustererkennung und erhalte als Ergebnis eine 3x3-Matrix mtrx[3][3], welche alle möglichen Transformationen enthält, um von meiner Referenz auf die aktuelle Lage des erkannten Musters zu kommen. Da das aufgezeichnete Objekt aber immer parallel zur Kamera liegt, sind nur die XY-Verschiebung und die Rotation um die Z-Achse interessant, alles andere müssen zwangsläufig Ungenauigkeiten durch Kamera/Objektiv/Rundungsfehler sein.
Meine XY-Verschiebung finde ich in mtrx[0][2] und mtrx[1][2]. Aber wie komme ich an die Verdrehung (Rotation um die Z-Achse) heran? Die zurückgelieferte 3x3-Matrix kann ich ja nicht direkt verwenden, da ich dann die Verzerrungen/Ungenauigkeiten mit ins Zielsystem übernehmen würde.
Danke schon mal!