当前位置: 首页 > news >正文

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

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

ncnn::Mat to bin

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

std::ofstream file("output_x86.bin", std::ios::binary);

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

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* 类型,以便将其作为字节流写入文件,

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) 表示将所有数据写入文件,

file.write(reinterpret_cast<const char*>(input_mat.data), input_mat.cstep * sizeof(float));
file.close();

cv::Mat to bin

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();

相关文章:

  • 听GPT 讲Rust源代码--src/tools(27)
  • 什么是高并发系统?
  • ChatGPT4.0(中文版)国内无限制免费版(附网址)
  • 15. 三数之和
  • conda移除环境
  • 【译文】IEEE白皮书 6G 太赫兹技术的基本原理 2023版
  • 【第十二课】KMP算法(acwing-831 / c++代码 / 思路 / 视频+博客讲解推荐)
  • SpringMVC系列之技术点定向爆破一
  • 相比于其他流处理技术,Flink的优点在哪?
  • 3D动态路障生成
  • 【Qt-Button】
  • 蓝牙物联网智能安防系统设计方案
  • 工程监测振弦采集仪的信号处理与分析方法研究
  • 基于RocketMQ实现分布式事务
  • mac下jd-gui提示没有找到合适的jdk版本
  • Vue框架引入Axios
  • 微软发布安卓版Copilot,可免费使用GPT-4、DALL-E 3
  • 由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。
  • 如何批量提取pdf文件名到excel?
  • 【前端框架】NPM概述及使用简介
  • 西域都护府博物馆今日在新疆轮台县开馆
  • 倒票“黄牛”屡禁不绝怎么破?业内:强化文旅市场票务公开制度
  • 有关“普泽会”,俄官方表示:有可能
  • 当智慧农场遇见绿色工厂:百事如何用科技留住春天的味道?
  • 美国务卿会见叙利亚外长,沙特等国表示将支持叙利亚重建
  • 一种声音·阿甘本|即将到来的中世纪;“新”与“旧”……