Mat 数据类型保存为二进制文件

来源:互联网 发布:松下a5伺服软件 编辑:程序博客网 时间:2024/05/17 03:12
// Write matrix to binary filebool Objectness::matWrite(CStr& filename, CMat& _M){Mat M;_M.copyTo(M);FILE* file = fopen(_S(filename), "wb");if (file == NULL || M.empty())return false;fwrite("CmMat", sizeof(char), 5, file);int headData[3] = {M.cols, M.rows, M.type()};fwrite(headData, sizeof(int), 3, file);fwrite(M.data, sizeof(char), M.step * M.rows, file);fclose(file);return true;}// Read matrix from binary filebool Objectness::matRead(const string& filename, Mat& _M){FILE* f = fopen(_S(filename), "rb");if (f == NULL)return false;char buf[8];int pre = fread(buf,sizeof(char), 5, f);if (strncmp(buf, "CmMat", 5) != 0){printf("Invalidate CvMat data file %s\n", _S(filename));return false;}int headData[3]; // Width, height, typefread(headData, sizeof(int), 3, f);Mat M(headData[1], headData[0], headData[2]);fread(M.data, sizeof(char), M.step * M.rows, f);fclose(f);M.copyTo(_M);return true;}

1 0
原创粉丝点击