3
我使用OpenCv進行圖像分類。訓練完成後,我將模型保存到* .yaml.gz。然後我將這個文件添加到嵌入式資源。現在我需要從資源加載模型,但OpenCv只允許從文件或字符串加載。從內存中加載cv :: RTrees
HMODULE ModuleHandle;
void LoadBinaryResource(int resId, void** data, int& size)
{
HRSRC resource = ::FindResource(ModuleHandle, MAKEINTRESOURCE(resId), RT_RCDATA);
HGLOBAL resourceData = ::LoadResource(ModuleHandle, resource);
*data = ::LockResource(resourceData);
size = ::SizeofResource(ModuleHandle, resource);
}
void LoadRTreesFromResource(int resId, cv::RTrees& forest)
{
void* binaryData;
int size;
LoadBinaryResource(resId, &binaryData, size);
// here I need to load CvStatModel from binaryData
}
現在我被迫將數據寫入文件,然後使用cv :: RTres :: load方法。
有什麼辦法從內存中加載CvStatModel?或者我怎麼能序列化/反序列化模型爲二進制格式而不使用方法cv :: RTres :: save和cv :: RTres :: load?
謝謝!