手势识别-----检测拳头

           由于最近做一些手势识别方面的项目,所以在网上找了很多这方面的材料;

           发现用adaboost+haar可以检测好几种手势;相对于用肤色来检测手,级联分类器的方法效果相当的好,而且检测速度也很快。

          

#include "opencv2\opencv.hpp"
using namespace cv;


void detectAndShow(CascadeClassifier&  casFist,Mat img)
{
vector fist;
Mat gray;
cvtColor(img,gray,CV_BGR2GRAY);
casFist.detectMultiScale(gray,fist,1.1,2,0,Size(50,50));
for(int i=0;i{
rectangle(img,fist[i],Scalar(255,255,0),1);
}
imshow("fist",img);
}
int main()
{
string filename="fist.xml";
CascadeClassifier  casFist;


if(!casFist.load(filename))
{
std::cout<<" load xml file failed\n";
system("pause");
return -1;
}
VideoCapture cap(0);
Mat frame;
while( 27!=waitKey(10))
{
cap>>frame;
detectAndShow(casFist,frame);
}
return 0;
}


分类器文件有需要可邮件索要[email protected]
http://www.andol.info/download

你可能感兴趣的:(手势识别,C++,图像处理)