I am Charmie

メモとログ

convert Eigen::Matrix to flann::Matrix

The following functions convert (note the matrix size!!)

  • a column-major NxM Eigen::Matrix to a row-major MxN flann::Matrix.
  • a row-major NxM Eigen::Matrix to a row-major NxM flann::Matrix.

[code lang="cpp"] template <typename ValueType> flann::Matrix<ValueType> convertEigen2Flann( const Eigen::Matrix<ValueType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>&amp; mEigen ) { flann::Matrix<ValueType>mFlann(new ValueType[mEigen.size()], mEigen.rows(), mEigen.cols());

for(size_t n = 0; n < mEigen.size(); ++n) { (mFlann.ptr()+n) = (mEigen.data()+n); } return mFlann; }

template <typename ValueType> flann::Matrix<ValueType> convertEigen2Flann( const Eigen::Matrix<ValueType, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor>&amp; mEigen ) { Eigen::Matrix<ValueType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> mEigen = mEigen.transpose(); return convertEigen2Flann(mEigen); } [/code]