Commit a0bb95c7216335064923f23196711079e20cee82

Authored by Brendan Klare
1 parent 635d372c

Simple helper method to convert from cv::Mat (32F) to Eigen::MatrixXf

openbr/core/opencvutils.cpp
... ... @@ -336,6 +336,14 @@ bool OpenCVUtils::overlaps(const QList<Rect> &posRects, const Rect &negRect, dou
336 336 return false;
337 337 }
338 338  
  339 +Eigen::MatrixXf OpenCVUtils::toEigen(Mat m) {
  340 + if (m.type() != CV_32F)
  341 + qFatal("Mat to Eigen Converstation only supports CV_32F");
  342 +
  343 + Eigen::MatrixXf data(m.rows, m.cols);
  344 + return Eigen::Map<const Eigen::MatrixXf>(m.ptr<float>(), m.rows, m.cols);
  345 +}
  346 +
339 347 QDataStream &operator<<(QDataStream &stream, const Mat &m)
340 348 {
341 349 // Write header
... ...
openbr/core/opencvutils.h
... ... @@ -24,6 +24,8 @@
24 24 #include <opencv2/core/core.hpp>
25 25 #include <assert.h>
26 26  
  27 +#include <Eigen/Core>
  28 +
27 29 namespace OpenCVUtils
28 30 {
29 31 // Test/write/display image
... ... @@ -91,6 +93,7 @@ namespace OpenCVUtils
91 93 bool overlaps(const QList<cv::Rect> &posRects, const cv::Rect &negRect, double overlap);
92 94 float overlap(const cv::Rect &rect1, const cv::Rect &rect2);
93 95 float overlap(const QRectF &rect1, const QRectF &rect2);
  96 + Eigen::MatrixXf toEigen(cv::Mat m);
94 97  
95 98 int getFourcc();
96 99 }
... ...