云社区 博客 博客详情

opencv 视频中人脸检测

一颗小树x 发表于 2020-12-03 23:20:57 2020-12-03
0
0

【摘要】                                       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

登录后可下载附件,请登录或者注册

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

上一篇:OpenCV HSV颜色模型及 颜色分量范围

下一篇:“cvCvtPixToPlane”: 找不到标识符

评论 (0)


登录后可评论,请 登录注册

评论