• 大小: 573KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: 其他
  • 标签: opencv  手势识别  

资源简介

opencv实现两种手势识别,拳头和手掌,效果还是可以的

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 

cv::Mat img;

std::vector palm;
std::vector Fists;

cv::CascadeClassifier Fist Palm;

void DrawText(cv::Mat& imgstd::string textint x int ycv::Scalar color)
{
    cv::putText(imgtext.c_str()cv::Point(xy)cv::FONT_HERSHEY_SIMPLEX0.8color21);
}

int main()
{
    cv::VideoCapture cap(0);
    char ch;
    Fist.load(“fist.xml“);
    Palm.load(“rpalm.xml“);
    double time_past=0;
    int frame_cnt = 0;
    int T=5;
    double avg_fps=0;
    int64 s;
    double time_palm=0 time_fist=0;
    while(true)
    {
        int64 start = cv::getTickCount();
        cap>>img;

        s = cv::getTickCount();
        Palm.detectMultiScale(imgpalm1.120|CV_HAAR_SCALE_IMAGEcv::Size(100100));
        time_palm += (cv::getTickCount() - s) / cv::getTickFrequency();

        s = cv::getTickCount();
        Fist.detectMultiScale(imgFists1.120|CV_HAAR_SCALE_IMAGEcv::Size(100100));
        time_fist += (cv::getTickCount() - s) / cv::getTickFrequency();

        for(unsigned int i=0 j=0; i< Fists.size() || j < palm.size() ; j++i++)
        {
            if(Fists.size())
            {
                cv::putText(img“Fist“cv::Point(Fists[i].xFists[i].y)cv::FONT_HERSHEY_SIMPLEX0.8cv::Scalar(00255)21);
                cv::rectangle(imgcv::Point(Fists[i].xFists[i].y)cv::Point(Fists[i].x+ Fists[i].widthFists[i].y+ Fists[i].height)cv::Scalar(0255255)180);
            }
            if(palm.size())
            {
                cv::putText(img“Palm“cv::Point(palm[i].xpalm[i].y)cv::FONT_HERSHEY_SIMPLEX0.8cv::Scalar(00255)21);
                cv::rectangle(imgcv::Point(palm[i].xpalm[i].y)cv::Point(palm[i].x+ palm[i].widthpalm[i].y+ palm[i].height)cv::Scalar(0255255)180);
            }
        }
        frame_cnt++;
        time_past += (cv::getTickCount() - start) / cv::getTickFrequency();
        if(time_past >= T)
        {
            avg_fps = (double)frame_cnt / time_past;
            printf(“average fps:%3.2f time_palm:%f ms time_fist:%f ms in %d second\n“ avg_fps time_palm/frame_cnt*1000 time_fist/frame_cnt*1000 T);
            frame_cnt = 0;
            time_past = 0;
            time_palm = 0;
            time_fist = 0;
        }
        char fps_str[256] ;
        sprintf(fps_str“%s %d““FPS : “(int)avg_fps);
        DrawText(imgfps_str1050cv::Scalar(02550));

        cv::imshow(“Gesture Recognition“img);
        ch=cv::waitKey(1);
        if(ch==27)
        {
            break;
        }
    }
    return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .......      2688  2017-11-07 06:07  CVGesture-master\CVGesture-master\demo.cpp

     文件     121195  2017-11-07 06:07  CVGesture-master\CVGesture-master\fist.xml

    .......       839  2017-11-07 06:07  CVGesture-master\CVGesture-master\installation.md

     文件        295  2017-11-07 06:07  CVGesture-master\CVGesture-master\Makefile

     文件     583960  2017-11-07 06:07  CVGesture-master\CVGesture-master\performance_report_cvgesture.pdf

    .......      1101  2017-11-07 06:07  CVGesture-master\CVGesture-master\README.md

     文件     179290  2017-11-07 06:07  CVGesture-master\CVGesture-master\rpalm.xml

     文件      28200  2017-11-15 18:57  CVGesture-master\说明.JPG

     目录          0  2017-11-07 06:07  CVGesture-master\CVGesture-master

     目录          0  2017-11-15 18:57  CVGesture-master

----------- ---------  ---------- -----  ----

               917568                    10


评论

共有 条评论