旋转矩阵特征库

问题描述

如何将 Eigen 矩阵中存储的二维图像顺时针旋转 90 度?

我的代码

Eigen::Matrix<int,n,n> m;
Eigen::Rotation2D rot(90);
auto m1 = m * rot.derived();

但我收到一个错误

error: static_assert Failed due to requirement 'ProductIsValid || SameSizes' "INVALID_MATRIX_PRODUCT"

解决方法

旋转逆时针

Eigen::Matrix<int,n,n> m_rotated_ninty_ccwise = m.transpose().colwise().reverse();

旋转顺时针

Eigen::Matrix<int,n> m_rotated_ninty_cwise = m.reverse().transpose().reverse();