OpenCV——人脸检测
生活随笔
收集整理的這篇文章主要介紹了
OpenCV——人脸检测
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OpenCV支持的目標檢測的方法: 利用樣本的Haar特征進行的分類器訓練,得到的級聯(lián)boosted分類器(Cascade Classification)
1.加載級聯(lián)分類器
CascadeClassifier cascade; cascade.load("haarcascade_frontalface_alt2.xml");2.打開視頻
VideoCapture capture(0); if (!capture.isOpened()){return -1;}3.對每一幀圖像進行檢測并標出人臉
while (true){Mat Image, grayImage;capture >> Image; //讀取當前幀//縮小圖片加快檢測速度Mat smallImg(cvRound(Image.rows / 2.0), cvRound(Image.cols / 2.0), CV_8UC1);//處理圖像 grayImage.create(Image.size(), Image.type());cvtColor(Image, grayImage, CV_BGR2GRAY);resize(grayImage, smallImg, smallImg.size(), 0, 0, INTER_LINEAR);equalizeHist(smallImg, smallImg);vector<Rect> rect;cascade.detectMultiScale(smallImg, rect);for (int i = 0; i < rect.size(); i++){Point center; //圓心int radius; //圓的半徑//由于smallImg是Image的1/2,檢測smallImg在Image上繪制圓,要將圓的各類信息擴大一倍 center.x = cvRound((rect[i].x + rect[i].width * 0.5)) * 2;center.y = cvRound((rect[i].y + rect[i].height * 0.5)) * 2;radius = cvRound((rect[i].width + rect[i].height) * 0.25) * 2;circle(Image, center, radius, CV_RGB(255, 0, 0), 2); //繪制圓形 }imshow("人臉識別", Image);if (waitKey(30) >= 0)break;}?4. 頭文件
#include<opencv2/objdetect/objdetect.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp>?
OK,就是這樣
轉載于:https://www.cnblogs.com/farewell-farewell/p/5999589.html
總結
以上是生活随笔為你收集整理的OpenCV——人脸检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【十三单元】 软件安装 yum源配置
- 下一篇: C#设计模式——生成器模式(Builde