【发布时间】:2017-01-01 16:25:10
【问题描述】:
我目前正在为大学从事计算机视觉/机器学习项目。遗憾的是,它们只允许我们上传一个文件并且过多地限制了计算时间。因此,我需要在我的机器上计算矩阵并将它们存储在与代码相同的文件中(22500 行,1 列和 100 行 + 22500 列和 100 行 + 1 列)。我已经找到了导出数据的方法(link),但我不确定如何初始化矩阵。
我尝试过的
#include <opencv/cv.h>
#include <opencv/highgui.h>
int main(int argc, char const *argv[])
{
float data[10] = {1,2,3,4,5,7,8,9,10,11};
cv::Mat A;
// Something is wrong with this line
A = cv::Mat(1, 10, cv::CV_32FC1, data);
return 0;
}
当我编译它时,我得到:
main.cc: In function ‘int main(int, const char**)’:
main.cc:10:16: error: expected primary-expression before ‘(’ token
A = cv::Mat(1, 10, cv::CV_32FC1, data);
^
In file included from /usr/include/opencv2/core/core_c.h:47:0,
from /usr/include/opencv/cv.h:63,
from main.cc:1:
main.cc:10:28: error: expected unqualified-id before ‘(’ token
A = cv::Mat(1, 10, cv::CV_32FC1, data);
^
第二次尝试
#include <opencv/cv.h>
#include <opencv/highgui.h>
int main(int argc, char const *argv[])
{
float dataHeaderMat1[10] = {1,2,3,4,5,7,8,9,10,11};
cv::Mat matrix1;
// Something is wrong with this line
cv::cvInitMatHeader( &matrix1, 10, 1, CV_64FC1, dataHeaderMat1);
return 0;
}
给予
main.cc:10:5: error: ‘cvInitMatHeader’ is not a member of ‘cv’
cv::cvInitMatHeader( &matrix1, 10, 1, CV_64FC1, dataHeaderMat1);
^
【问题讨论】:
-
包括正确的标题,或者只使用:#include
。另外,你可以看看here 来保存/加载一个大矩阵