Opencv人头跟踪检测
//-------------------------------------人头检测------------------------------------- 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人头跟踪检测的更多相关文章
- OpenCV特征点检测------ORB特征
OpenCV特征点检测------ORB特征 ORB是是ORiented Brief的简称.ORB的描述在下面文章中: Ethan Rublee and Vincent Rabaud and Kurt ...
- opencv车道线检测
opencv车道线检测 完成的功能 图像裁剪:通过设定图像ROI区域,拷贝图像获得裁剪图像 反透视变换:用的是老师给的视频,没有对应的变换矩阵.所以建立二维坐标,通过四点映射的方法计算矩阵,进行反透视 ...
- 【转载】opencv实现人脸检测
全文转载自CSDN的博客(不知道怎么将CSDN的博客转到博客园,应该没这功能吧,所以直接复制全文了),转载地址如下 http://blog.csdn.net/lsq2902101015/article ...
- [PyImageSearch] Ubuntu16.04 使用深度学习和OpenCV实现物体检测
上一篇博文中讲到如何用OpenCV实现物体分类,但是接下来这篇博文将会告诉你图片中物体的位置具体在哪里. 我们将会知道如何使用OpenCV‘s的dnn模块去加载一个预训练的物体检测网络,它能使得我们将 ...
- 【python+opencv】直线检测+圆检测
Python+OpenCV图像处理—— 直线检测 直线检测理论知识: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进 ...
- OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现
# OpenCV学习系列(一) Mac下OpenCV + xcode人脸检测实现 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-环 ...
- 基于OpenCV的火焰检测(二)——RGB颜色判据
上文跟大家分享了在做火焰检测中常用到的图像预处理方法,从这一篇博文开始,我将向大家介绍如何一步一步地检测出火焰区域.火焰提取要用 到很多判据,今天我要向大家介绍的是最简单的但是很有效的判据--RGB判 ...
- 基于OpenCV的火焰检测(一)——图像预处理
博主最近在做一个基于OpenCV的火焰检测的项目,不仅可以检测图片中的火焰,还可以检测视频中的火焰,最后在视频检测的基础上推广到摄像头实时检测.在做这个项目的时候,博主参考了很多相关的文献,用了很多种 ...
- OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle
千万注意opencv的轮廓检测和边缘检测是两码事 本文链接:https://blog.csdn.net/wsp_1138886114/article/details/82945328 1 获取轮廓 O ...
随机推荐
- 根据wsdl文件生成webservice 的.cs文件 及 生成dll C#调用
Visual Studio 2013->Visual Studio Tools->VS2013 开发人员命令提示 命令行输入 wsdl E:\WS.wsdl /out ...
- codeforces 709B Checkpoints
题目链接:http://codeforces.com/problemset/problem/709/B 题目大意: 第一行给出两个数 n,x.第二行 输入 n 个数. 要求:从x位置遍历 n-1 个位 ...
- PHP----遇到的Session问题
使用SESSION,当跨页面使用时,会提示错误Cannot modify header information - headers already sent by..., 背景:使用session_s ...
- VC----SDK下对窗口非客户区的操作
窗口分成两大部分:客户区和非客户区.非客户区再次细分:标题栏,如图片中顶部深蓝色:左边框,如图片中红色部分:上边框,如图片中绿色部分:右边框,如图片中右侧天蓝色部分:底边框,如图片中下面棕色部分. 之 ...
- C语言进行面向对象编程
http://blog.csdn.net/dadalan/article/details/3983888 http://blog.163.com/zhqh43@126/blog/static/4043 ...
- DX9资源管理
http://www.cnblogs.com/cxrs/archive/2013/04/03/D3DResourceManager.html http://kasicass.blog.163.com/ ...
- Object.prototype.toString.call() 区分对象类型
判断一个对象的类型: /** * 判断对象是否为数组 * @param {Object} source 待判断的对象 * @return {Boolean} true|false */ Object. ...
- yii2 如何用命名空间方式使用第三方类库
原文地址:http://www.yiichina.com/tutorial/395 Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利 ...
- Coding上传项目步骤
step1:在coding上面创建一个项目mybokestep2:在git 命令台中进入项目的根目录下面,使用git init创建.git文件夹和.gitigonre文件,帮组本地与远程的链接step ...
- start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart:
用Ubuntu远程登录虚拟host时出现: start: Unable to connect to Upstart: Failed to connect to socket /com/ubunt ...