我正在使用OpenCV2.4和SVM分类,我需要在C ++中加载一个大数据集(大约400Mb的数据)。我已经能够将这个数据集保存在XML文件下,但之后我无法加载它。 Indedd,我收到以下消息:
OpenCV错误:OutOfMemoryError中的内存不足(无法分配408909812字节),文件(我的opencv2.4目录)modules \ core \ src \ alloc.cpp,第52行 - 错误:( - 4)
我怎样才能增加可用内存(我有足够的可用内存)?
非常感谢!
编辑: 这是问题出现的地方。加载较小的文件时代码可以正常工作
std::cout<<"ok 0"<<std::endl;
FileStorage XML_Data(Filename, FileStorage::READ);
XML_Data["Data"]>>m_Data_Matrix;
XML_Data.release();
std::cout<<"ok 1"<<std::endl;
编辑2: 问题解决了:解决方案是将我的应用程序和OpenCV2.4.5编译为64位应用程序。我已经安装了64位版本的MinGW,使用这个新版本构建OpenCV(并使用cmake进行配置),然后修改了codeblocks使用的编译器。 您可以找到以下链接:http://forums.codeblocks.org/index.php?topic=13016.0和http://www.drangon.org/mingw。