diff --git a/openbr/core/eigenutils.cpp b/openbr/core/eigenutils.cpp index ce75b65..4e1d939 100644 --- a/openbr/core/eigenutils.cpp +++ b/openbr/core/eigenutils.cpp @@ -16,4 +16,32 @@ void writeEigen(MatrixXf X, QString filename) { format->write(br::Template(m)); } +void writeEigen(MatrixXd X, QString filename) { + Mat m(X.rows(),X.cols(),CV_32FC1); + for (int i = 0; i < X.rows(); i++) { + for (int j = 0; j < X.cols(); j++) { + m.at(i,j) = (float)X(i,j); + } + } + QScopedPointer format(br::Factory::make(filename)); + format->write(br::Template(m)); +} +void writeEigen(VectorXd X, QString filename) { + Mat m(X.size(),1,CV_32FC1); + for (int i = 0; i < X.rows(); i++) { + m.at(i,0) = (float)X(i); + } + QScopedPointer format(br::Factory::make(filename)); + format->write(br::Template(m)); +} + +void printEigen(Eigen::MatrixXd X) { + for (int i = 0; i < X.rows(); i++) { + QString str; + for (int j = 0; j < X.cols(); j++) { + str.append(QString::number(X(i,j)) + " "); + } + qDebug() << str; + } +} diff --git a/openbr/core/eigenutils.h b/openbr/core/eigenutils.h index 314060a..5d4ab62 100644 --- a/openbr/core/eigenutils.h +++ b/openbr/core/eigenutils.h @@ -22,6 +22,9 @@ #include void writeEigen(Eigen::MatrixXf X, QString filename); +void writeEigen(Eigen::MatrixXd X, QString filename); +void writeEigen(Eigen::VectorXd X, QString filename); +void printEigen(Eigen::MatrixXd X); template inline QDataStream &operator<<(QDataStream &stream, const Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &mat)