2D Homography Matrix Decomposition Using Polar Decomposition

2D Homography Matrix Decomposition Using Polar Decomposition

https://github.com/hangong/H_Decomposition

You are now following this Submission

This is a MATLAB MEX implementaion.
A 2D homography matrix M can be meaningful primitive components, as

H = RSN = R(UKU')N

where R is a rotation matrix, N is ±I, and S is a symmetric positive definite stretch matrix. The stretch matrix can optionally be factored, though not uniquely, as UKU', where U is a rotation matrix and K is diagonal and positive. N can be multiplied into S if desired.

Copyright 2017 Han Gong, Unviersity of East Anglia gong@fedoraproject.org

Reference: Shoemake, Ken, and Tom Duff. "Matrix animation and polar decomposition." In Proceedings of the conference on Graphics interface, vol. 92, pp. 258-264. 1992.

Compilation

$ make

Usage

[r,u,k,n] = TransformDecompose(H);

Note that the rotation r and u are returend in quaternion parameter form. Use quat2rotm to convert a quaternion to a rotation matrix. k is the diagnal elements of the diagnal matrix K. n is a sign paramter (-1 or 1). Please also see "Demo.m" for the usage of 2D homographical change interpolation.

Cite As

Han Gong (2026). 2D Homography Matrix Decomposition Using Polar Decomposition (https://github.com/hangong/H_Decomposition), GitHub. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes Action
1.0.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.