MNIST手写数字库格式转换(c++可用的格式)

2023-11-03

static int ReverseInt(int i)  //转换魔数,读取数据库中的图片数,行数,列数等信息
{  
    unsigned char ch1, ch2, ch3, ch4;  
    ch1 = i & 255;  
    ch2 = (i >> 8) & 255;  
    ch3 = (i >> 16) & 255;  
    ch4 = (i >> 24) & 255;  
    return((int)ch1 << 24) + ((int)ch2 << 16) + ((int)ch3 << 8) + ch4;  
} 
FileStorage ImageDataSet;//将数字库中的数据转换成Mat图片类型(28*28),并保存到xml文件中
    ImageDataSet.open("/home/shensy/Code/c++/opencv3编程入门/手写数字识别/database/TestImageDataSet.xml",FileStorage::WRITE);
    ifstream file;
	file.open("/home/shensy/Code/c++/opencv3编程入门/手写数字识别/database/t10k-images-idx3-ubyte",ifstream::binary);
	int magic_number = 0;  
    int number_of_images = 0;  
    int n_rows = 0;  
    int n_cols = 0;
	file.read((char*)&magic_number, sizeof(magic_number));  
    file.read((char*)&number_of_images, sizeof(number_of_images));    
    file.read((char*)&n_rows, sizeof(n_rows));   
    file.read((char*)&n_cols, sizeof(n_cols)); 
    magic_number=ReverseInt(magic_number); 
    number_of_images=ReverseInt(number_of_images);
    n_rows=ReverseInt(n_rows);
    n_cols=ReverseInt(n_cols);
    
    //cout<<ReverseInt(magic_number)<<"       "<<ReverseInt(number_of_images)<<"      "<<ReverseInt(n_rows)<<"        "<<ReverseInt(n_cols)<<endl;
    
    for(int i=0;i<number_of_images;i++)
    {
        Mat tupian(n_rows,n_cols,CV_8UC1);
        string ss="image"+to_string(i);
        for(int j=0;j<n_rows;j++)
        {
            for(int k=0;k<n_cols;k++)
            {
                unsigned char temp=0;
                file.read((char*)&temp, sizeof(temp));
                tupian.at<unsigned char>(j,k)=(int)temp;
            }
        }
        ImageDataSet<<ss<<tupian;
        cout<<"保存第"<<i<<"张图片"<<endl;
    }
	file.close();
    ImageDataSet.release();
FileStorage ImageDataSet;//保存标签值
    ImageDataSet.open("/home/shensy/Code/c++/opencv3编程入门/手写数字识别/database/TestLabelDataSet.xml",FileStorage::WRITE);
    ifstream file;
	file.open("/home/shensy/Code/c++/opencv3编程入门/手写数字识别/database/t10k-labels-idx1-ubyte",ifstream::binary);
	int magic_number = 0;  
    int number_of_images = 0;  
    int n_rows = 0;  
    int n_cols = 0;
	file.read((char*)&magic_number, sizeof(magic_number));  
    file.read((char*)&number_of_images, sizeof(number_of_images));    
    magic_number=ReverseInt(magic_number); 
    number_of_images=ReverseInt(number_of_images);
    
    //cout<<ReverseInt(magic_number)<<"       "<<ReverseInt(number_of_images)<<"      "<<ReverseInt(n_rows)<<"        "<<ReverseInt(n_cols)<<endl;
    for(int i=0;i<number_of_images;i++)
    {
        string ss="label"+to_string(i);
        unsigned char temp=0;
        file.read((char*)&temp, sizeof(temp));
        ImageDataSet<<ss<<(int)temp;
        cout<<"保存第"<<i<<"个标签"<<endl;
    }

	file.close();
    ImageDataSet.release();



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MNIST手写数字库格式转换(c++可用的格式) 的相关文章

  • 如何确定与视频中物体的距离?

    我有一个从行驶中的车辆前面录制的视频文件 我将使用 OpenCV 进行对象检测和识别 但我停留在一方面 如何确定距已识别物体的距离 我可以知道我当前的速度和现实世界的 GPS 位置 但仅此而已 我无法对我正在跟踪的对象做出任何假设 我计划用
  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • 在 Python 中将 OpenCV 帧流式传输为 HTML

    我正在尝试从 opencv Pyt hon 中的 URL 读取视频 然后逐帧处理它 然后将其发送到 HTML 页面 But I am only getting the first frame after that the program g
  • cv2.drawContours() - 取消填充字符内的圆圈(Python,OpenCV)

    根据 Silencer的建议 我使用了他发布的代码here https stackoverflow com questions 48244328 copy shape to blank canvas opencv python 482465
  • Opencv Mat内存管理

    内存管理对于图像类至关重要 在opencv中 图像类是cv Mat 它有一个微妙的内存管理方案 假设我已经有了自己的图像类SelfImage class SelfImage public int width int height unsig
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是
  • 是否可以在 PyScript 中使用 OpenCV 模块?

    我想使用 opencv 模块 但无法导入 OpenCV 那么我该如何解决这个问题呢 顺便说一句 Pyodide 支持 OpenCV 示例代码 https i stack imgur com ahwex jpg 尚不支持 OpenCV 此时O
  • 如何在 cv2.VideoWriter 中使用 FPS 参数?

    好的 所以我正在制作视频 我想确切地知道如何使用 FPS 参数 它是一个浮点数 所以我假设这是我想要的每帧之间的间隔 你能给个例子吗 我只想知道视频会如何随着 FPS 参数值的变化而变化 因为我制作的视频现在太快了 谢谢 确实只是这样 fr
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域
  • iphone opencv - 模板匹配

    我已经在我的 iphone 项目中实现了这个 OpenCV 构建 http aptogo co uk 2011 09 opencv framework for ios http aptogo co uk 2011 09 opencv fra
  • 深度估计的准确性 - 立体视觉

    我正在研究立体视觉 我对这个问题的深度估计的准确性感兴趣 这取决于几个因素 例如 适当的立体校准 旋转 平移和失真提取 图像分辨率 相机和镜头质量 失真越小 色彩捕捉正确 两个图像之间的匹配特征 假设我们没有低成本的相机和镜头 没有廉价的网
  • 开放简历fisherfaces

    我有这个问题 当我使用 vs2010 调试 opencv 2 4 0 facetec demo c 运行时 程序出现此错误 OpenCV错误 未知函数中图像步长错误 矩阵不连续 因此其行数无法更改 文件 src opencv modul e
  • 如何加速 svm.predict?

    我正在编写一个滑动窗口来提取特征并将其输入到 CvSVM 的预测函数中 然而 我偶然发现 svm predict 函数相对较慢 基本上 窗口以固定的步幅长度在图像比例上滑动穿过图像 遍历图像加上提取每个图像特征的速度 窗口大约需要 1000
  • 使用卡尔曼滤波器跟踪位置和速度

    我正在使用卡尔曼滤波器 恒定速度模型 来跟踪物体的位置和速度 我测量对象的 x y 并跟踪 x y vx vy 这是有效的 但是如果在传感器读数 x y vx vy 上添加 20 mm 的高斯噪声 即使该点没有移动 只是噪声也会发生波动 对
  • 使用 OpenCV 进行图像模糊检测

    我正在研究图像的模糊检测 我已经用过拉普拉斯方法的方差在 OpenCV 中 img cv2 imread imgPath gray cv2 cvtColor img cv2 COLOR BGR2GRAY value cv2 Laplacia
  • 在Python中从整个图像中检测表格部分

    我有一张尺寸为 3500x5000 的图像 现在我只想检测整个图像中的表格部分 如果不能直接进行 OCR 处理 则对其进行裁剪和旋转 经过所有搜索后 我想到了使用裁剪图像中的每个单元格的想法https medium com coinmonk
  • 我的 Opencv 应用程序处理速度非常慢

    我正在构建一个 OpenCV 应用程序 它从相机捕获视频 并在删除背景后将其覆盖在另一个视频上 我无法达到合理的速度 因为它以大约 1 fps 的速度播放输出 而我的背景去除以 3 fps 的速度工作 有没有办法以正常速度显示背景视频并以
  • C++ OpenCV 3.4 / FFMPEG 3.4.1 VideoWriter 和 MP4 输出文件格式

    我正在运行 Linux 内核 4 9 35 ti r44 的 ARM BeagleBone X 15 Debian 机器 在我的 C Qt 5 应用程序中 我想将 cv Mat 帧保存为 MP4 格式视频 我安装了 libx264 并从头开
  • 如何选择图像插值方法? (Emgu/OpenCV)

    Emgu OpenCV的 net包装器 提供的图像调整大小功能可以使用四种插值方法中的任意一种 http www emgu com wiki files 1 4 0 0 html 596dd03d 301e d3c6 4c53 c42855
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem

随机推荐

  • 一些常用的公共 DNS 服务器 IP 地址

    公共 DNS 服务器 IP 地址 名称 DNS 服务器 IP 地址 阿里 AliDNS 223 5 5 5 223 6 6 6 CNNIC SDNS 1 2 4 8 210 2 4 8 114 DNS 114 114 114 114 114
  • 编写一个IDEA插件之:自动生成Java代码

    我很喜欢IDEA的一键自动生成代码功能 例如自动生成构造方法 字段的Get Set方法 ToString方法等等 除此之外 也有一些插件提供自动生成代码的功能 例如我们所熟悉的GsonFormat插件 使用该插件可以为我们快速的解析json
  • 简易unity网络游戏架构(个人理解)

    客户端架构 客户端流程 点击UI gt panel调用Request的send方法 gt 调用基类得得send gt 调用face的send方法 gt 调用clientManager的send方法 gt 调用message的包装方法 gt
  • Hexo

    前言 搭建博客两个必要条件 博客框架 托管平台 这里框架我们采用Hexo 而平台大部分人会选择GitHub 这里我选择的是Gitee 属于国内的代码托管平台 相比于GitHub来说 访问速度更快 更稳定 环境要求 Git Nodejs 安装
  • OpenAPI安全合规检查

    OpenAPI安全合规检查是指对使用OpenAPI进行接口开发的系统进行安全性和合规性检查 确保系统在设计 开发和运行过程中符合相关的安全标准和法律法规要求 它包含以下内容 访问控制 检查系统是否实现了适当的身份验证和权限管理机制 以确保只
  • 使用HTTP协议发送POST请求

    HTTP发送POST请求常用的类是HttpClientUtil类 这个类提供三个方法 分别是sendPostByForm sendPostByJson sendPostByXml sendPostByForm 处理 application
  • 预编译合约使用问题 | FISCO BCOS开发问题排查

    预编译合约是否支持event事件日志功能 目前不支持 该特性正在规划中 用户可以关注后续的更新 了解更多干货内容 请关注FISCO BCOS开源社区公众号 访问FISCO BCOS代码仓库可下载项目所有源代码 https github co
  • LeetCode(Python)—— 合并两个有序链表(简单)

    合并两个有序链表 概述 将两个升序链表合并为一个新的 升序 链表并返回 新链表是通过拼接给定的两个链表的所有节点组成的 输入 l1 1 2 4 l2 1 3 4 输出 1 1 2 3 4 4 输入 l1 l2 输出 输入 l1 l2 0 输
  • 用 VSCode 写 Python,这 14 个插件不容错过

    可以说 Visual Studio Code 这个编辑器 让微软在开源社区赢回了王者段位 要知道全球 2400 万开发者中有 1400 万称 VSCode 为自己的家 再加上 GitHub 和 VSCode 的结合 几乎所有的程序员的都离不
  • 惠普服务器c3000怎么用显示器,HP BladeSystem c3000

    HP BladeSystem c3000 机箱 HP BladeSystem c3000 Platinum 机柜为 HP BladeSystem 带来了全新功能 c3000 以三个单独的细分市场为目标 1 需要 2 8 台刀片服务器的远程站
  • The Process class relies on proc_open, which is not available on your PHP installation报错解决

    同事laravel框架开发的代码有如下错误日志 production ERROR The Process class relies on proc open which is not available on your PHP instal
  • 服务器的作用

    服务器的作用 1 服务器就好像是一个电话总台一样 而其他的网络设备就像是公共电话 所有的数据传输都要经过服务器的处理 2 服务器作为一个网络节点 为用户提供数据处理服务 最常见的就是使用服务器为自己搭建一个网站 3 服务器运算能力强 可以长
  • Kali更新源时候出现——下载签名无效,解决办法

    一 更新源 vim etc apt sources list 复制下面源码 选择一个 粘贴到里面 并把原来的源进行注释 中科大 deb http mirrors ustc edu cn kali kali rolling main non
  • C++中的map用法详解

    目录 1 map的介绍 2 map的操作 1 定义map类型 2 输出map中的元素 3 添加数据 4 查找数据 5 删除数据 1 map的介绍 map是C 中STL中的一个关联容器 以键值对来存储数据 数据类型自己定义 它的内部数据结构是
  • PaddleX入门教程2:搭建并配置Paddlex的推理环境(CPU版本)

    上一个教程中 同学们掌握了利用PaddleX完成训练并发布模型后 接下来我们将通过Python脚本来调用该模型 并做一些基础应用 本节教程主要教同学们从零搭建调用PaddleX导出模型的运行环境 1 运行PaddleX推理需要安装Visua
  • springboot学习(十)web工程扩展

    登录接口 这里是基于演示代码写的登录接口 实际肯定不会这么low 会出现get请求 包括参数注解也会用的是 RequestBody而不是 RequestParam Controller public class LoginControlle
  • Mac下,在VirtualBox上创建一台虚拟机

    1 Mac下 在VirtualBox上创建一台虚拟机 主机 Mac 32位 内存8G 虚拟机 Oracle VM VirtualBox 版本 软件 Linux安装软件 版本6 2 ISO映像 rhel server 6 2 i386 dvd
  • 【浅谈PC市场】

    市场调研机构Canalys数据显示 今年一季度 中国市场整体PC出货量同比下降24 至890万台 已是连续第五个季度下跌 今年截至618结束 都没有一家主要的PC厂商愿意发战报 PC市场怎样走出寒冬 谈谈你的理解和看法 PC市场在近年来确实
  • 基于VB脚本开发的机器人高级语言进行轨迹规划演示

    采用VB基本语言 在其中嵌入机器人运动控制指令 扩展成机器人高级编程语言 本例子演示的是高级螺旋线轨迹规划 movep 0 0 0 0 0 0 a 0 2 b 0 2 12 56 for i 0 to 12 56 step 0 01 x a
  • MNIST手写数字库格式转换(c++可用的格式)

    static int ReverseInt int i 转换魔数 读取数据库中的图片数 行数 列数等信息 unsigned char ch1 ch2 ch3 ch4 ch1 i 255 ch2 i gt gt 8 255 ch3 i gt