Как преобразовать tif изображения из типа данных cv :: Mat в Eigen :: MatrixXf - PullRequest
0 голосов
/ 14 мая 2019

По какой-то причине, когда я пытаюсь преобразовать изображение, которое я импортировал с OpenCV, в собственную матрицу, я получаю эту ошибку:

libc++abi.dylib: terminating with uncaught exception of type cv::Exception: OpenCV(3.4.3)

/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_graphics_opencv/opencv/work/opencv-3.4.3/modules/core/src/matrix_wrap.cpp:1186: 

error: (-215:Assertion failed) !fixedType() || ((Mat*)obj)->type() == mtype in function 'create'

Я предполагаю, что это потому, что я неправильно импортирую изображение какневерный тип данных.Может ли кто-нибудь дать представление о том, как правильно конвертировать две библиотеки?Пожалуйста и спасибо!

#include <Eigen/Core>
#include <opencv2/opencv.hpp>
#include <opencv2/core/eigen.hpp>

using namespace Eigen;
using namespace cv;

String filename = "phantom.tif";
Mat img = imread(filename);
MatrixXf img_matrix(img.rows, img.cols);
cv2eigen(img, img_matrix);

1 Ответ

0 голосов
/ 22 мая 2019

Если кому-то интересно, я смог заставить его работать, запустив это:

//Load Dataset.
String filename = "phantom.tif";
Mat img = imread(filename, cv::ImreadModes::IMREAD_GRAYSCALE);
int Nslice = img.rows;
int Nray = img.cols;
Eigen::MatrixXf tiltSeries;
cv::cv2eigen(img, tiltSeries);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...