只是加载数据的这块 自己做个记录
训练部分
Mat SrcImage=imread(files[i].c_str());
//Mat SrcImagex = SrcImage.reshape(1, 1);
///*
Mat dst, dst_gray;
resize(SrcImage,dst,Size(64,64));// 改变大小
cvtColor(dst,dst_gray,COLOR_BGR2GRAY);
HOGDescriptor detector(Size(32, 32), Size(16, 16), Size(8, 8), Size(4, 4),9);
vector<float> descriptors;//直方图向量
//vector<Point>locations;
detector.compute(dst_gray, descriptors,Size(8,8));
cv::Mat tres;
tres = Mat(descriptors, true);//vector2mat
tres = tres.t();
trainingImages.push_back(tres);
//*/
//trainingImages.push_back(SrcImagex);
trainingLabels.push_back(1);
预测部分
Mat inMat = imread(files[i].c_str());
//Mat p = inMat.reshape(1, 1);
Mat dst, dst_gray;
resize(inMat,dst,Size(64,64));// 改变大小
cvtColor(dst,dst_gray,COLOR_BGR2GRAY);
HOGDescriptor detector(Size(32, 32), Size(16, 16), Size(8, 8), Size(4, 4),9);
vector<float> descriptors;//直方图向量
//vector<Point>locations;
detector.compute(dst_gray, descriptors,Size(8,8));
cv::Mat tres;
tres = Mat(descriptors, true);//vector2mat
tres = tres.t();
tres.convertTo(tres, CV_32FC1);
int response = (int)svm.predict(tres);
if (response == 1)
{
result++;
}