想要将minist数据集转成图片,则必须先了解minist数据的二进制存储方式,下面的链接有详细的介绍
http://m.blog.youkuaiyun.com/article/details?id=53257185
代码如下:
#include<iostream>
#include<vector>
#include<fstream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
bool flags = true;
//涉及到数据的存储方式,低字节在前面,高字节在后面,所以转换成十进制要注意
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;
}
//把二进制转换成jpg图片的函数
void convertToImage(const string ministImage, const string ministImageLabel, vector<Mat>& Image, vector<int>& Label)
{
ifstream readImage(ministImage, ios::binary);
ifstream readLabel(ministIm