#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
//#include "opencv2/nonfree/features2d.hpp"
//#include "opencv2/nonfree/nonfree.hpp"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
# include
# include
# include
# include
# include
# include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
using namespace Eigen;
int main(int argc, char** argv)
{
ifstream myfile;
myfile.open("mnist_train.csv");
int Number = 1;
Mat image = Mat(28,28, CV_8U, int(1));
string val;
ofstream myfile1;
myfile1.open("Train.txt");
ofstream myfile2;
myfile2.open("Test.txt");
while(myfile >> val)
{
int r = 0;
int c = 0;
string sub = "";
string label = val.substr(0,1);
for(int i = 2; i < val.length(); i++)
{
if(val[i] != ',')
sub += val[i];
else
{
int Result;
istringstream convert(sub);
if ( !(convert >> Result) )
Result = 0;
image.at(r,c) = Result;
c++;
if(c == 28)
{
r++;
c = 0;
}
sub = "";
}
}
string Result;
ostringstream convert;
convert << Number;
Result = convert.str();
string dataset;
if(Number <= 55000)
{
dataset = "Dataset/Train/" + Result + ".png";
myfile1 << dataset << " " << label << endl;
}
else
{
dataset = "Dataset/Test/" + Result + ".png";
myfile2 << dataset << " " << label << endl;
}
cout << dataset << endl;
imwrite(dataset,image);
Number++;
}
waitKey(0);
return 0;
}