opencv 视频中人脸检测

举报
一颗小树x 发表于 2020/12/03 23:20:57 2020/12/03
【摘要】                                       opencv  视频中人脸检测   先看一下运行结果:   源代码: //头文件 #include<opencv2/objdetect/objdetect.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/img...

                                      opencv  视频中人脸检测

 

先看一下运行结果:

 

源代码:


  
  1. //头文件
  2. #include<opencv2/objdetect/objdetect.hpp>
  3. #include<opencv2/highgui/highgui.hpp>
  4. #include<opencv2/imgproc/imgproc.hpp>
  5. using namespace cv;
  6. //人脸检测的类
  7. CascadeClassifier faceCascade;
  8. int main()
  9. {
  10. faceCascade.load("haarcascade_frontalface_alt2.xml"); //加载分类器,注意文件路径
  11. VideoCapture cap;
  12. //cap.open(0); //打开摄像头
  13. cap.open("1.mp4"); //打开视频
  14. Mat img, imgGray;
  15. vector<Rect> faces;
  16. int c = 0;
  17. if (!cap.isOpened())
  18. {
  19. return 1;
  20. }
  21. while (c != 27)
  22. {
  23. cap >> img; //读取帧
  24. if (img.channels() == 3)
  25. {
  26. cvtColor(img, imgGray, CV_RGB2GRAY); //变成灰色图像
  27. }
  28. else
  29. {
  30. imgGray = img;
  31. }
  32. faceCascade.detectMultiScale(imgGray, faces, 1.2, 6, 0, Size(0, 0)); //检测人脸
  33. if (faces.size()>0)
  34. {
  35. for (int i = 0; i<faces.size(); i++)
  36. {
  37. rectangle(img, Point(faces[i].x, faces[i].y), Point(faces[i].x + faces[i].width, faces[i].y + faces[i].height), Scalar(0, 255, 0), 1, 8); //框出人脸位置
  38. }
  39. }
  40. imshow("Camera", img); //一帧一帧图片进行播放
  41. c = waitKey(1); //延迟时间
  42. }
  43. return 0;
  44. }

参考: opencv 视频读取 (深入了解)  

机器学习 专栏 opencv

 

希望对你有帮助。 

 

 

 

 

 

文章来源: guo-pu.blog.csdn.net,作者:一颗小树x,版权归原作者所有,如需转载,请联系作者。

原文链接:guo-pu.blog.csdn.net/article/details/84039024

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。