Cascade Classifier

一.基础概念

1.Haar和LBP特征

参考博客:

https://blog.csdn.net/liudongdong19/article/details/81008160

2.主要函数

二.代码实现

#include "opencv2/objdetect.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"#include <stdio.h>using namespace std;
using namespace cv;/** Function Headers */
void detectAndDisplay( Mat frame );/** Global variables */
String face_cascade_name, eyes_cascade_name;
CascadeClassifier face_cascade;
CascadeClassifier eyes_cascade;
String window_name = "Capture - Face detection";/** @function main */
int main( int argc, const char** argv )
{CommandLineParser parser(argc, argv,"{help h||}""{face_cascade|../../data/haarcascades/haarcascade_frontalface_alt.xml|}""{eyes_cascade|../../data/haarcascades/haarcascade_eye_tree_eyeglasses.xml|}");parser.about( "\nThis program demonstrates using the cv::CascadeClassifier class to detect objects (Face + eyes) in a video stream.\n""You can use Haar or LBP features.\n\n" );parser.printMessage();face_cascade_name = parser.get<String>("face_cascade");eyes_cascade_name = parser.get<String>("eyes_cascade");VideoCapture capture;Mat frame;//-- 1. Load the cascades //加载级联分类器文件if( !face_cascade.load( face_cascade_name ) ){ printf("--(!)Error loading face cascade\n"); return -1; };if( !eyes_cascade.load( eyes_cascade_name ) ){ printf("--(!)Error loading eyes cascade\n"); return -1; };//-- 2. Read the video stream //读取视频流capture.open( 0 );if ( ! capture.isOpened() ) { printf("--(!)Error opening video capture\n"); return -1; }while ( capture.read(frame) ){if( frame.empty() ){printf(" --(!) No captured frame -- Break!");break;}//-- 3. Apply the classifier to the frame//用级联分类器来检测目标图片detectAndDisplay( frame );if( waitKey(10) == 27 ) { break; } // escape}return 0;
}/** @function detectAndDisplay */
void detectAndDisplay( Mat frame )
{std::vector<Rect> faces;Mat frame_gray;cvtColor( frame, frame_gray, COLOR_BGR2GRAY );//颜色空间转换,由于haar和LBP均是对灰度进行处理,所以必须事先转换成灰度equalizeHist( frame_gray, frame_gray );//直方图均衡化//-- Detect faces //检测脸face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CASCADE_SCALE_IMAGE, Size(60, 60) );//在目标图像中检测出脸的矩形轮廓for ( size_t i = 0; i < faces.size(); i++ ){Point center( faces[i].x + faces[i].width/2, faces[i].y + faces[i].height/2 );ellipse( frame, center, Size( faces[i].width/2, faces[i].height/2 ), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 );//画出包围脸部的椭圆Mat faceROI = frame_gray( faces[i] );//确定脸部所在的矩形区域为感兴趣区域,然后进行后续的眼睛检测std::vector<Rect> eyes;//矩形向量//-- In each face, detect eyeseyes_cascade.detectMultiScale( faceROI, eyes, 1.1, 2, 0 |CASCADE_SCALE_IMAGE, Size(50, 50) );//检测眼部for ( size_t j = 0; j < eyes.size(); j++ ){Point eye_center( faces[i].x + eyes[j].x + eyes[j].width/2, faces[i].y + eyes[j].y + eyes[j].height/2 );int radius = cvRound( (eyes[j].width + eyes[j].height)*0.25 );circle( frame, eye_center, radius, Scalar( 255, 0, 0 ), 4, 8, 0 );//画出眼部所在的圆圈}}//-- Show what you gotimshow( window_name, frame );
}

![](/home/mazh/Pictures/Screenshot from 2019-05-28 16-53-58.png)

Cascade Classifier相关推荐

  1. 什么是神经网络在object detection的应用?cascade classifier,卷积神经网络,迁移学习

    首先 输入,positive image:大黄蜂 negative image:大黄蜂的背景 输出,有多大的概率是大黄蜂 用的是卷积神经网络 卷积神经网络的分类器 在matlab里面是一个xml文件 ...

  2. OpenCV级联分类器Cascade Classifier

    OpenCV级联分类器Cascade Classifier 级联分类器Cascade Classifier 目标 理论 OpenCV中的Haar级联检测 结果 级联分类器Cascade Classif ...

  3. OpenCV中的级联分类器Cascade Classifier(面部识别)

    OpenCV中的级联分类器Cascade Classifier Goal In this tutorial you will learn how to: Use the CascadeClassifi ...

  4. Python+OpenCV:训练级联分类器(Cascade Classifier Training)

    Python+OpenCV:训练级联分类器(Cascade Classifier Training) Introduction Working with a boosted cascade of we ...

  5. Python+OpenCV:级联分类器(Cascade Classifier)

    Python+OpenCV:级联分类器(Cascade Classifier) 目标 We will learn how the Haar cascade object detection works ...

  6. OpenCV56:级联分类器|Cascade Classifier

    目标 在本教程中, 将学习 Haar级联对象检测的工作原理 将使用基于Haar Feature的Cascade分类器了解人脸检测和眼睛检测的基础知识 将使用cv::CascadeClassifier类 ...

  7. 基于摄像头使用Cascade Classifier做人脸检测的方法及例程

    参考文档:http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html 目标: 使 ...

  8. Cascade Classification

    转自:http://opencv.willowgarage.com/documentation/c/objdetect_cascade_classification.html Haar Feature ...

  9. cascade down_cascade是什么意思_cascade的翻译_音标_读音_用法_例句_爱词霸在线词典...

    全部 倾泻 小瀑布 串联 She watched the magnificent waterfall cascade down the mountainside. 她看着壮观的瀑布从山坡上倾泻而下. ...

最新文章

  1. TCP/UDP对比总结
  2. spring30: 事务
  3. Fastjson 爆出远程代码执行高危漏洞,更新版本已修复
  4. 【渝粤题库】陕西师范大学700005 遗传学
  5. TYAN联合AMD举办线上研讨会,分享最新第三代AMD EPYC服务器产品
  6. aes c语言 逆列混合函数,c语言aes列混合和逆列混合的实现(3页)-原创力文档
  7. html英文字体汇总,笔记 CSS常用中文字体英文名称对照表
  8. 创建一个vue-cli项目
  9. Hadoop学习心得一
  10. 算法介绍及实现——基于遗传算法改进的BP神经网络算法(附完整Python实现)
  11. 左耳朵耗子 | 技术人员的发展之路
  12. mt管理器去除应用广告
  13. 人脸识别模型评价指标:完整梳理
  14. ActivityManager: Waited long enough for:****Service
  15. comboFM: leveraging multi-way interactions for systematic prediction of drug combination effects
  16. ai智能写作如何快速写文?
  17. vs2015最详细的使用教程(有图)
  18. 【项目管理心得】周总结与反思
  19. Word基础(三十三)脚注与尾注的转换
  20. 广州融媒体峰会现场直播中,BirdDog Full NDI应用有哪些优点?难点?如何解决?

热门文章

  1. Android 中Uri.parse()的作用
  2. 电脑进入BIOS界面就傻了?新版BIOS中英文对照图解
  3. 【转】交换机的Access口与Trunk口:Trunk端口汇聚
  4. c++实现split函数
  5. 【绝悟】腾讯最强策略协作型AI开放人机对战,五一节放松一下吧!
  6. Dubbo 是什么?
  7. MBD建模规范 stateflow建模 无规矩不成方圆 规范建模行为 提升建模效率 。 主要包含模型接口界面及布局,模块的安全使用、预防易出错的建模模式
  8. 财管U01 公司理财基本原理 教材解读
  9. dell venue 7 linux,64位处理器 戴尔全新Venue 7平板评测
  10. 【自动化测试不求人】行为驱动behave环境搭建