The method to extract HOG feature is refer to -> http://feelmare.blogspot.kr/2014/04/example-source-code-of-extract-hog.html
The method to training SVM of HOG feature is refer to -> http://feelmare.blogspot.kr/2014/04/example-source-code-hog-feature-to.html
The method is using training data.
Again training data make HOG feature, and check the feature is positive or not using trained SVM data.
The example source code is like that.
...
#include < stdio.h> #include < opencv2\opencv.hpp> //#include < opencv2\gpu\gpu.hpp> using namespace cv; using namespace std; #ifdef _DEBUG #pragma comment(lib, "opencv_core247d.lib") #pragma comment(lib, "opencv_imgproc247d.lib") //MAT processing #pragma comment(lib, "opencv_objdetect247d.lib") //HOGDescriptor //#pragma comment(lib, "opencv_gpu247d.lib") //#pragma comment(lib, "opencv_features2d247d.lib") #pragma comment(lib, "opencv_highgui247d.lib") #pragma comment(lib, "opencv_ml247d.lib") //#pragma comment(lib, "opencv_stitching247d.lib"); //#pragma comment(lib, "opencv_nonfree247d.lib"); #else #pragma comment(lib, "opencv_core247.lib") #pragma comment(lib, "opencv_imgproc247.lib") #pragma comment(lib, "opencv_objdetect247.lib") //#pragma comment(lib, "opencv_gpu247.lib") //#pragma comment(lib, "opencv_features2d247.lib") #pragma comment(lib, "opencv_highgui247.lib") #pragma comment(lib, "opencv_ml247.lib") //#pragma comment(lib, "opencv_stitching247.lib"); //#pragma comment(lib, "opencv_nonfree247.lib"); #endif void main() { //variables char FullFileName[100]; char FirstFileName[100]="./images/upperbody"; //"./NegaImages/Negative"; // int FileNum=96; //262; //Load trained SVM xml data CvSVM svm; svm.load("trainedSVM.xml"); //count variable int nnn=0, ppp=0; for(int i=0; i< FileNum; ++i) { sprintf_s(FullFileName, "%s%d.png", FirstFileName, i+1); //printf("%s\n", FullFileName); //read image file Mat img, img_gray; img = imread(FullFileName); //resizing //resize(img, img, Size(16,8) ); //Size(64,48) ); //Size(32*2,16*2)); //Size(80,72) ); resize(img, img, Size(64,48) ); //Size(32*2,16*2)); //Size(80,72) ); //gray cvtColor(img, img_gray, CV_RGB2GRAY); //Extract HogFeature HOGDescriptor d( Size(32,16), Size(8,8), Size(4,4), Size(4,4), 9); vector< float> descriptorsValues; vector< Point> locations; d.compute( img_gray, descriptorsValues, Size(0,0), Size(0,0), locations); //vector to Mat Mat fm = Mat(descriptorsValues); //Classification whether data is positive or negative int result = svm.predict(fm); printf("%s - > %d\n", FullFileName, result); //Count data if(result == 1) ppp++; else nnn++; //show image imshow("origin", img); waitKey(5); } printf(" positive/negative = (%d/%d) \n", ppp, nnn); }---