我正在尝试将数学转换为int但它不起作用。我在互联网上搜索了有关转换的信息,但没有为我找到任何东西。
我们如何将array
转换为mat
?
我们如何将mat
转换为array
?
我应该使用哪种方式?
答案 0 :(得分:1)
假设您的mat
类确实是cv::Mat
(因为您指定在主题中使用OpenCV),您可以查看所有cv::Mat
函数和构造函数{ {3}}。在那里,您可以看到有here可以向其传递指向数据的指针。一个例子是:
int array1[] = {1,2,3,4,5,6,7,8,9,10,11,12};
cv::Mat mat = cv::Mat(2,6,CV_32SC1,array1);
将席子中的数据作为数组检索(以前的代码)
int* array2;
if (mat.sContinuous())
array2 = mat.ptr<int>(0);
如果矩阵不连续,那么您很可能必须逐个元素地复制它。
答案 1 :(得分:0)
尝试使用 cv:FileStorage
FileStorage fS("test.xml", FileStorage::WRITE);
Mat m1 = Mat(1,1, CV_64F, mydata); // suppose that m1 is the mat object that you want to save its values.
fS << m1;
fs.release();
稍后您可以使用READ方法打开相同的.xml文件,只需将值读入数组。