将ncnn及opencv的mat存储成bin文件的方法

利用fstream,将ncnn及opencv的mat存储成bin文件。

ncnn::Mat to bin

std::ios::binary标志指示文件以二进制模式进行读写,

cpp 复制代码
std::ofstream file("output_x86.bin", std::ios::binary);

将input_mat中的宽、高和通道数分别赋值给width、height和channels,

cpp 复制代码
int width = input_mat.w;
int height = input_mat.h;
int channels = input_mat.c;

使用file.write函数将width、height和channels的值以二进制形式写入文件。reinterpret_cast用于将指针类型进行类型转换,这里将 int* 类型转换为 const char* 类型,以便将其作为字节流写入文件,

cpp 复制代码
file.write(reinterpret_cast<const char*>(&width), sizeof(int));
file.write(reinterpret_cast<const char*>(&height), sizeof(int));
file.write(reinterpret_cast<const char*>(&channels), sizeof(int));

将input_mat.data所指向的数据以二进制形式写入文件。input_mat.data是一个指向input_mat数据的指针,reinterpret_cast将其转换为const char*类型,以便将其作为字节流写入文件。input_mat.cstep * sizeof(float)表示要写入的字节数,input_mat.cstep是input_mat数据中每一行的字节数,乘以 sizeof(float) 表示将所有数据写入文件,

cpp 复制代码
file.write(reinterpret_cast<const char*>(input_mat.data), input_mat.cstep * sizeof(float));
file.close();

cv::Mat to bin

cpp 复制代码
std::ofstream file(filename, std::ios::binary);

int width = mat.cols;
int height = mat.rows;
int channels = mat.channels();
    
file.write(reinterpret_cast<const char*>(&width), sizeof(int));
file.write(reinterpret_cast<const char*>(&height), sizeof(int));
file.write(reinterpret_cast<const char*>(&channels), sizeof(int));  
file.write(reinterpret_cast<const char*>(mat.data), mat.total() * mat.elemSize());
file.close();
相关推荐
天机️灵韵7 小时前
OpenAvatarChat项目在Windows本地运行指南
人工智能·开源项目·openavatarchat
DeeplyMind8 小时前
AMD KFD驱动技术分析16:SVM Aperture
人工智能·机器学习·amdgpu·rocm·kfd
非门由也8 小时前
《sklearn机器学习——聚类性能指标》Davies-Bouldin Index (戴维斯-博尔丁指数)
人工智能·机器学习·支持向量机
limengshi1383928 小时前
人工智能学习:LR和SVM的联系与区别?
人工智能·算法·机器学习·支持向量机
爆改模型8 小时前
【CVPR2025】计算机视觉|即插即用|DSSA:即插即用!显著提升模型性能的双重稀疏注意力模块!
人工智能·计算机视觉
呜喵王阿尔萨斯10 小时前
git命令解析
c++·git
2401_8979300610 小时前
tensorflow常用使用场景
人工智能·python·tensorflow
deepdata_cn11 小时前
开源混合专家大语言模型(DBRX)
人工智能·语言模型
deepdata_cn11 小时前
开源本地LLM推理引擎(Cortex AI)
人工智能·推理引擎
说私域12 小时前
“互联网 +”时代商业生态变革:以开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序为例
人工智能·小程序·开源