Package boofcv.alg.geo.calibration
Class Zhang99DecomposeHomography
java.lang.Object
boofcv.alg.geo.calibration.Zhang99DecomposeHomography
Decomposes a homography into rigid body motion (rotation and translation) utilizing specific assumptions made inside the Zhang99 paper [1].
Let K and R be the calibration matrix and rotation matrix.
R = [ r1 , r1 , r1 ]
ri is the ith column in R.
Then compute R using the column of the homography matrix:
r1 = λ*inv(K)*h1
r2 = λ*inv(K)*h2
r3 = cross(r1,r2)
t = λ*inv(K)*h3
t is the translation vector. The R computed above is only approximate and needs to be turned into
a real rotation matrix.
[1] Zhengyou Zhang, "Flexible Camera Calibration By Viewing a Plane From Unknown Orientations,", International Conference on Computer Vision (ICCV'99), Corfu, Greece, pages 666-673, September 1999.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionCompute the rigid body motion that composes the homography matrix H.void
Specifies the calibration matrix.
-
Constructor Details
-
Zhang99DecomposeHomography
public Zhang99DecomposeHomography()
-
-
Method Details
-
setCalibrationMatrix
Specifies the calibration matrix.- Parameters:
K
- upper triangular calibration matrix.
-
decompose
Compute the rigid body motion that composes the homography matrix H. It is assumed that H was computed usingZhang99ComputeTargetHomography
.- Parameters:
H
- homography matrix.- Returns:
- Found camera motion.
-