1 // hand gesture sampler.cpp : Defines the entry point for the console application. 2 3 // 4 #include "stdafx.h" 5 #include6 #include 7 8 #include 9 10 using namespace cv;11 using namespace std;12 13 Mat src, src2Save;14 char cfileName[1024];15 string sfileName = "";16 Size outputSize = Size(320, 240);17 18 template string NumberToString ( T Number );19 void help();20 21 22 int main()23 {24 help();25 26 namedWindow("monitor", 1);27 28 VideoCapture cap(0);29 30 if(cap.isOpened())31 {32 int c = 0;33 int num = 0;34 bool sampleState = false;35 36 //main loop37 while( c != 27)38 {39 if(c == 98) sampleState = true;40 if(c == 115) sampleState = false;41 42 //get webcam image43 cap >> src;44 45 //resize image to 320*24046 if(src.cols > 320 || src.rows > 240) resize(src, src2Save, outputSize, 0.5, 0.5, 1);47 48 //show image49 imshow("monitor", src2Save);50 51 //save image 52 sfileName = "f:/documents/Downloads/hand gesture pictures/" + NumberToString(num) + ".png";53 if(sampleState) 54 { 55 imwrite(sfileName, src2Save); 56 num ++;57 cout<<"\nCollected Sample Number - " << num << endl;58 } 59 60 //exit loop61 c = waitKey(10);62 }63 }64 else65 //end app66 return -1;67 68 return 0;69 }70 71 template 72 string NumberToString ( T Number )73 {74 ostringstream ss;75 ss << Number;76 return ss.str();77 }78 79 void help()80 {81 printf(82 "========================\n"83 "========================\n"84 "Programme to collect a good number of hand gestures from video streams.\n"85 "Usage:\n"86 "(s)top - stop sampling\n"87 "(b)egin - begin sampling\n"88 "ESC - exit the programme\n"89 "==========================\n"90 "==========================\n"91 );92 }