//-------------------------------------人头检测-------------------------------------

int main()
{     //VideoCapture video("E:\\C_VC_code\\Text_Photo\\feini.flv");
    vector<float>head;
    FILE *read = fopen("detector_TQ.txt", "r");
    if (read == NULL)
    {
        cout << "Error: The file read fail" << endl;
        return -1;
    }
    double data;
    while (fscanf(read, "%lf", &data) != -1)
    {
        head.push_back(data);
    }
    cout << head.size() << endl;     VideoCapture video(0);
    if (!video.isOpened())
    {
        return 0;
    }
    Mat img, dstimg;
    vector<Rect>found;
    vector<Rect>result;
    Rect r;
    HOGDescriptor hog(Size(48, 48), Size(16, 16), Size(8, 8), Size(8, 8), 9);
    hog.setSVMDetector(head);
    double scalar = 0.5;
    int i, j;
    while (1)
    {
        video >> img;
        resize(img, dstimg, Size(img.cols*scalar, img.rows*scalar), 1, 1, 3);
        hog.detectMultiScale(dstimg, found, 1, cv::Size(8, 8), cv::Size(0, 0), 1.1, 3, false);
        //去除嵌套的矩形
        result.clear();
        for (i = 0; i < found.size(); i++)
        {
            r = found[i];             for (j = 0; j < found.size(); j++)
            {
                if (i != j && (r&found[j]) == r)
                {
                    break;
                }
            }
            if (j == found.size())
            {
                result.push_back(r);
            }
        }
        //draw rect
        for (i = 0; i<result.size(); i++)
        {
            r = result[i];
            r.x = r.x/scalar*0.81;
            r.y = r.y/scalar;
            r.width = r.width/scalar*1.7;
            r.height = r.height/scalar*4;
            rectangle(img, r, CV_RGB(0, 255, 0), 2);
        }
        //imshow("video1", dstimg);
        imshow("video", img);
        found.clear();
        if (waitKey(33) == 27)
        {
            imshow("video", img);
            waitKey(0);
            break;
        }
    }
}

Opencv人头跟踪检测的更多相关文章

  1. OpenCV特征点检测------ORB特征

    OpenCV特征点检测------ORB特征 ORB是是ORiented Brief的简称.ORB的描述在下面文章中: Ethan Rublee and Vincent Rabaud and Kurt ...

  2. opencv车道线检测

    opencv车道线检测 完成的功能 图像裁剪:通过设定图像ROI区域,拷贝图像获得裁剪图像 反透视变换:用的是老师给的视频,没有对应的变换矩阵.所以建立二维坐标,通过四点映射的方法计算矩阵,进行反透视 ...

  3. 【转载】opencv实现人脸检测

    全文转载自CSDN的博客(不知道怎么将CSDN的博客转到博客园,应该没这功能吧,所以直接复制全文了),转载地址如下 http://blog.csdn.net/lsq2902101015/article ...

  4. [PyImageSearch] Ubuntu16.04 使用深度学习和OpenCV实现物体检测

    上一篇博文中讲到如何用OpenCV实现物体分类,但是接下来这篇博文将会告诉你图片中物体的位置具体在哪里. 我们将会知道如何使用OpenCV‘s的dnn模块去加载一个预训练的物体检测网络,它能使得我们将 ...

  5. 【python+opencv】直线检测+圆检测

     Python+OpenCV图像处理—— 直线检测 直线检测理论知识: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进 ...

  6. OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现

    # OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-环 ...

  7. 基于OpenCV的火焰检测(二)——RGB颜色判据

    上文跟大家分享了在做火焰检测中常用到的图像预处理方法,从这一篇博文开始,我将向大家介绍如何一步一步地检测出火焰区域.火焰提取要用 到很多判据,今天我要向大家介绍的是最简单的但是很有效的判据--RGB判 ...

  8. 基于OpenCV的火焰检测(一)——图像预处理

    博主最近在做一个基于OpenCV的火焰检测的项目,不仅可以检测图片中的火焰,还可以检测视频中的火焰,最后在视频检测的基础上推广到摄像头实时检测.在做这个项目的时候,博主参考了很多相关的文献,用了很多种 ...

  9. OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle

    千万注意opencv的轮廓检测和边缘检测是两码事 本文链接:https://blog.csdn.net/wsp_1138886114/article/details/82945328 1 获取轮廓 O ...

随机推荐

  1. electron package can not find module xml2json

    问题 electron 打包好的应用找不到xml2json 但是开发环境npm start 运行正常 定位 node_modules没有包含在打的包中, 解决办法 --no-prune Be care ...

  2. 自然语言20.1 WordNet介绍和使用 _

    http://blog.csdn.net/ictextr9/article/details/4008703 Wordnet是一个词典.每个词语(word)可能有多个不同的语义,对应不同的sense.而 ...

  3. JavaWeb学习笔记——访问静态HTML网页

    基础知识: 1.一个标准 的WEB应用,在根目录下必须有一个WEB-INF文件夹,文件夹下必须有一个WEB.xml文件. 2.classes文件夹用来存放编译的class文件. 3.lib文件夹用来存 ...

  4. HTTP2.0介绍

    HTTP2.0的所有通信都是在一个TCP连接上完成的. 1.信息传输术语 1.1 流 虚拟信道,可以承载双向消息,每个流都有一个唯一的整数标识符(1.2....N); 1.2 消息 逻辑上的HTTP消 ...

  5. Ctrl+Scroll改变所有Editor的缩放比例 (Code::Blocks)

    Settings > Editor > Zooming resizes all editors

  6. 关于win10输入法问题(打不出中文)解决方法

    提问过windous10打不出字,通过安装第三方输入法和所有有关切换的快捷键都没用,现在找到了解决方法 win键+x,打开命令提示符,输入ctfmon,回车 这样就能看到桌面右下角的输入法上面的叉叉消 ...

  7. 网络广告术语CPC、CPM和CTR的含义和关系

    1.       CPC(Cost-per-click):对于广告主来说,就是每次点击(广告)的(付给网站主的)成本:对于媒体(或网站主)来说,就是用户每次点击(广告)(向广告主收取)的费用.可以用公 ...

  8. yii2 如何用命名空间方式使用第三方类库

    原文地址:http://www.yiichina.com/tutorial/395 Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利 ...

  9. 在IE6、IE7中实现块元素的inline-block效果

    在IE6.IE7中实现块元素的inline-block效果有以下两种方法: 1先使用display:inline-block属性触发layout,然后再定义display:inline让块元素呈现内联 ...

  10. [CentOs7]图形界面

    摘要 为了更方面的看到命令的执行后的效果,感觉安装一个图形界面,学习起来更有感觉.至少知道自己做了哪些事.在刚开始安装虚机的时候,选择了最小安装centos7,发现在使用命令安装图形界面的时候,尝试了 ...