(R)
| 53 | 1 - 2 * qvec[1]**2 - 2 * qvec[2]**2]]) |
| 54 | |
| 55 | def 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 | |
| 68 | class Image(BaseImage): |
| 69 | def qvec2rotmat(self): |
nothing calls this directly
no outgoing calls
no test coverage detected