MCPcopy Create free account
hub / github.com/OpenImagingLab/4DSloMo / rotmat2qvec

Function rotmat2qvec

scene/colmap_loader.py:55–66  ·  view source on GitHub ↗
(R)

Source from the content-addressed store, hash-verified

53 1 - 2 * qvec[1]**2 - 2 * qvec[2]**2]])
54
55def rotmat2qvec(R):
56 Rxx, Ryx, Rzx, Rxy, Ryy, Rzy, Rxz, Ryz, Rzz = R.flat
57 K = np.array([
58 [Rxx - Ryy - Rzz, 0, 0, 0],
59 [Ryx + Rxy, Ryy - Rxx - Rzz, 0, 0],
60 [Rzx + Rxz, Rzy + Ryz, Rzz - Rxx - Ryy, 0],
61 [Ryz - Rzy, Rzx - Rxz, Rxy - Ryx, Rxx + Ryy + Rzz]]) / 3.0
62 eigvals, eigvecs = np.linalg.eigh(K)
63 qvec = eigvecs[[3, 0, 1, 2], np.argmax(eigvals)]
64 if qvec[0] < 0:
65 qvec *= -1
66 return qvec
67
68class Image(BaseImage):
69 def qvec2rotmat(self):

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected