2D Homography Matrix Decomposition Using Polar Decomposition

Version 1.0.0.0 (11.1 KB) by Han Gong
2D Homography Matrix Decomposition Using Polar Decomposition
163 Downloads
Updated 14 Sep 2017

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 (2024). 2D Homography Matrix Decomposition Using Polar Decomposition (https://github.com/hangong/H_Decomposition), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Matrix Decomposition in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
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.