资源简介

实验一包含两个小实验:图像加载和显示、图像合成。用c++、opencv写的。运行代码时注意所选图像的大小和格式

资源截图

代码片段和文件信息

//#include 
//#include 
//#include “opencv2/imgcodecs.hpp“
//#include 
//#include 
//#include 
//
//using namespace cv;
//using namespace cv::ml;
//using namespace std;
//
////大端转小端
//int reverseInt(int i);
//
//void main()
//{
// //读取测试样本集
// ifstream if_testImags(“t10k-images-idx3-ubyte“ ios::binary);
// //读取失败
// if (true == if_testImags.fail())
// {
// cout << “Please check the path of file t10k-images-idx3-ubyte“ << endl;
// return;
// }
// int magic_num testImgsNum nrows ncols;
// //读取magic number
// if_testImags.read((char*)&magic_num sizeof(magic_num));
// magic_num = reverseInt(magic_num);
// cout << “测试图像数据库t10k-images-idx3-ubyte的magic number为:“ << magic_num << endl;
// //读取测试图像总数
// if_testImags.read((char*)&testImgsNum sizeof(testImgsNum));
// testImgsNum = reverseInt(testImgsNum);
// cout << “测试图像数据库t10k-images-idx3-ubyte的图像总数为:“ << testImgsNum << endl;
// //读取图像的行大小
// if_testImags.read((char*)&nrows sizeof(nrows));
// nrows = reverseInt(nrows);
// cout << “测试图像数据库t10k-images-idx3-ubyte的图像维度row为:“ << nrows << endl;
// //读取图像的列大小
// if_testImags.read((char*)&ncols sizeof(ncols));
// ncols = reverseInt(ncols);
// cout << “测试图像数据库t10k-images-idx3-ubyte的图像维度col为:“ << ncols << endl;
//
// //读取测试图像
// int imgVectorLen = nrows * ncols;
// Mat testFeatures = Mat::zeros(testImgsNum imgVectorLen CV_32FC1);
// Mat temp = Mat::zeros(nrows ncols CV_8UC1);
// for (int i = 0; i < testImgsNum; i++)
// {
// if_testImags.read((char*)temp.data imgVectorLen);
// Mat tempFloat;
// //由于SVM需要的测试数据格式是CV_32FC1,在这里进行转换
// temp.convertTo(tempFloat CV_32FC1);
// memcpy(testFeatures.data + i*imgVectorLen * sizeof(float) tempFloat.data imgVectorLen * sizeof(float));
// }
// //归一化
// testFeatures = testFeatures / 255;
// //读取测试图像对应的分类标签
// ifstream if_testLabels(“t10k-labels-idx1-ubyte“ ios::binary);
// //读取失败
// if (true == if_testLabels.fail())
// {
// cout << “Please check the path of file t10k-labels-idx1-ubyte“ << endl;
// return;
// }
// int magic_num_2 testLblsNum;
// //读取magic number
// if_testLabels.read((char*)&magic_num_2 sizeof(magic_num_2));
// magic_num_2 = reverseInt(magic_num_2);
// cout << “测试图像标签数据库t10k-labels-idx1-ubyte的magic number为:“ << magic_num_2 << endl;
// //读取测试图像的分类标签的数量
// if_testLabels.read((char*)&testLblsNum sizeof(testLblsNum));
// testLblsNum = reverseInt(testLblsNum);
// cout << “测试图像标签数据库t10k-labels-idx1-ubyte的标签总数为:“ << testLblsNum << endl;
//
// //由于SVM需要输入的标签类型是CV_32SC1,在这里进行转换
// Mat testLabels = Mat::zeros(testLblsNum 1 CV_32SC1);
// Mat readLabels = Mat::zeros(testLblsNum 1 CV_8UC1);
// if_testLabels.read((char*)readLabels.data testLblsNum * sizeof(char));
// readLabels.convertTo(testLabels CV_32SC1);
//
// //载入训练好的SVM模型
// Ptr svm = SVM::load(“mnist.xml“);
// int sum = 0;
// //对每一个测试图像进行SVM分类预测
// for (int i = 0; i <

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4729  2017-12-13 10:30  test.cpp
     文件         939  2017-10-01 10:40  test1.cpp

评论

共有 条评论