MNIST数据集转为.jpg图片格式

本文记录了在Ubuntu 16.04中使用C++将MNIST手写数字二进制文件转换为.jpg图片的过程。在转换过程中遇到的编译错误,包括指定C++11版本、链接库文件的问题,以及文件读取错误,最终成功完成转换。
摘要由CSDN通过智能技术生成

从mnist官网下载下来的mnist手写数据集是二进制文件流格式的,不能直接查看,如果需要查看,需要将二进制文件转化为jpg格式,可以用各种编程语言实现,如MATLAB、Python、C++等,本文是使用C++在Ubuntu 16.04操作系统下实现的,过程中出现许多问题,现记录如下:
1、问题描述
编译时出现一下错误

no matching function for call to std::basic_ifstream<char>::(std::string&)

原因:根据提示可以看出是读取文件ifstream时出现了问题,查找资料后知道是由于不同版本c++表达不同导致的,所以用g++编译器编译时要显式制定使用那个版本c++,本程序使用c++11,编译指令如下:

g++ -o b.out -std=c++11 mnist_bin2jpg2.cpp

2、问题:
编译时出现:

对‘cv::Mat::copySize(cv::Mat const&)’未定义的引用

原因:编译的时候没有链接到库文件,这样导致函数没有定义,所以变异的时候要手动链接到库文件

g++ -o b.out -std=c++11 mnist_bin2jpg2.cpp `pkg-config opencv --cflags --libs`

3、问题:
用ifstream读取文件时编译通过了,但是一直没有成功读取文件,一开始以为是因为文件夹包含有中文的原因,然后就用了只有英文名字的文件夹,仍就没有成功,找了很久,最后发现是自己文件名打错了(哭晕在厕所。。。)

最后附上网上找的再通过修改成功将mnist转为JPG图片的代码

    #include <iostream>  
    #include <fstream>  
    #include "opencv2/core/core.hpp"  
    #include "opencv2/h
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值