CV_64F最大单个数据单元的维度/大小,可以使用 OpenCV存储在矩阵( cv :: Mat 或CvMat *)中?有什么比这更大的吗?
我想在cv :: Mat中存储像 long double 这样的大型数据。有没有办法在不使用数组的情况下做到这一点?
答案 0 :(得分:2)
据我所知,你可以这样做那种。您可以使用Mat_模板类。以下是我写的简短例子:
#include <opencv2/core/core.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
Mat_<long double> testing(Size(5, 5));
// initialize matrix to ones
for(int i = 0; i < testing.rows; i++)
{
for(int j = 0; j < testing.cols; j++)
{
testing.at<long double>(i, j) = 1;
}
}
cout << "Element size in bytes is " << testing.elemSize() << "." << endl;
return 0;
}
现在需要注意......如果您尝试使用许多辅助方法ones
,zeros
,operator<<
和其他方法),您可能会看到以下错误:
OpenCV Error: Unsupported format or combination of formats () in scalarToRawData
希望这足以让你可以将它用于某些事情,但它不会像往常一样干净。