diff --git a/openbr/core/eigenutils.cpp b/openbr/core/eigenutils.cpp index e0601d1..c701d44 100644 --- a/openbr/core/eigenutils.cpp +++ b/openbr/core/eigenutils.cpp @@ -137,3 +137,11 @@ Eigen::MatrixXf matrixToVector(const Eigen::MatrixXf matrix) { return vector; } +Eigen::MatrixXf toEigen(const Mat m) { + if (m.type() != CV_32F) + qFatal("Mat to Eigen Converstation only supports CV_32F"); + + Eigen::MatrixXf data(m.rows, m.cols); + return Eigen::Map(m.ptr(), m.rows, m.cols); +} + diff --git a/openbr/core/eigenutils.h b/openbr/core/eigenutils.h index 0bbc013..73a72e0 100644 --- a/openbr/core/eigenutils.h +++ b/openbr/core/eigenutils.h @@ -21,6 +21,8 @@ #include #include +#include + void writeEigen(Eigen::MatrixXf X, QString filename); void writeEigen(Eigen::MatrixXd X, QString filename); void writeEigen(Eigen::VectorXd X, QString filename); @@ -40,6 +42,9 @@ Eigen::MatrixXf removeRowCol(const Eigen::MatrixXf X, int row, int col); Eigen::MatrixXf pointsToMatrix(const QList points, bool isAffine=false); QList matrixToPoints(const Eigen::MatrixXf P); +//Convert cv::Mat to Eigen +Eigen::MatrixXf toEigen(const cv::Mat m); + template inline QDataStream &operator<<(QDataStream &stream, const Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &mat) { diff --git a/openbr/core/opencvutils.cpp b/openbr/core/opencvutils.cpp index f7516e0..753daa8 100644 --- a/openbr/core/opencvutils.cpp +++ b/openbr/core/opencvutils.cpp @@ -336,14 +336,6 @@ bool OpenCVUtils::overlaps(const QList &posRects, const Rect &negRect, dou return false; } -Eigen::MatrixXf OpenCVUtils::toEigen(Mat m) { - if (m.type() != CV_32F) - qFatal("Mat to Eigen Converstation only supports CV_32F"); - - Eigen::MatrixXf data(m.rows, m.cols); - return Eigen::Map(m.ptr(), m.rows, m.cols); -} - QDataStream &operator<<(QDataStream &stream, const Mat &m) { // Write header diff --git a/openbr/core/opencvutils.h b/openbr/core/opencvutils.h index 5d8e850..572e214 100644 --- a/openbr/core/opencvutils.h +++ b/openbr/core/opencvutils.h @@ -24,8 +24,6 @@ #include #include -#include - namespace OpenCVUtils { // Test/write/display image @@ -93,7 +91,6 @@ namespace OpenCVUtils bool overlaps(const QList &posRects, const cv::Rect &negRect, double overlap); float overlap(const cv::Rect &rect1, const cv::Rect &rect2); float overlap(const QRectF &rect1, const QRectF &rect2); - Eigen::MatrixXf toEigen(cv::Mat m); int getFourcc(); }