public class Zhang99DecomposeHomography
extends java.lang.Object
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 and Description |
|---|
Zhang99DecomposeHomography() |
| Modifier and Type | Method and Description |
|---|---|
georegression.struct.se.Se3_F64 |
decompose(org.ejml.data.DenseMatrix64F H)
Compute the rigid body motion that composes the homography matrix H.
|
void |
setCalibrationMatrix(org.ejml.data.DenseMatrix64F K)
Specifies the calibration matrix.
|
public void setCalibrationMatrix(org.ejml.data.DenseMatrix64F K)
K - upper triangular calibration matrix.public georegression.struct.se.Se3_F64 decompose(org.ejml.data.DenseMatrix64F H)
Zhang99ComputeTargetHomography.H - homography matrix.