【发布时间】:2020-02-09 09:43:11
【问题描述】:
大家好,我正在做一个计算图像特征值和特征向量的程序。为此,我使用 OpenCV 和 Armadillo 库,使用 OpenCV 将图像上传到我的程序,并使用 Armadillo 计算特征值和特征向量。
我需要从 cv::Mat 转换为 arma::mat 才能计算特征值和特征向量,为此我根据之前的答案执行以下操作:
arma::mat arma_mat(reinterpret_cast<double*>(image.data), image.rows, image.cols);
完整代码在这里:
#include<armadillo>
#include<opencv2/opencv.hpp>
#include<iostream>
int main()
{
cv::Mat image = cv::imread("Imgs/face.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if(!image.data){
std::cout << "No se pudo cargar la imágen\n";
return -1;
}
arma::mat arma_mat(reinterpret_cast<double*>(image.data), image.rows, image.cols);
return 0;
}
代码编译没有问题,但是当它执行时,当它到达从 cv::Mat 转换为 arma::mat 的行时,执行停止并出现控制台(退出值:-1) 有谁知道为什么会这样?
【问题讨论】: