From a88895007611288964cc692e0753da3f72cae95d Mon Sep 17 00:00:00 2001 From: Shuo Zhong Date: Fri, 9 Jan 2026 18:14:52 -0600 Subject: [PATCH] bugfix: corret enu rotation matrix --- opensfm/exif.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/opensfm/exif.py b/opensfm/exif.py index 2205007a8..6b0a67dc7 100644 --- a/opensfm/exif.py +++ b/opensfm/exif.py @@ -592,7 +592,13 @@ def extract_opk(self, geo: Dict[str, Any]) -> Optional[Dict[str, Any]]: # Unit vector pointing north xnp /= m - znp = np.array([0, 0, -1]).T + # Unit vector pointing up and perpendicular to north(xnp) + znp = p1 + znp -= znp.dot(xnp) * xnp + m = np.linalg.norm(znp) + if m == 0: + logger.debug("Cannot compute OPK angles, divider = 0") + return ynp = np.cross(znp, xnp) cen = np.array([xnp, ynp, znp]).T