您的位置:首页 > 运维架构

【OpenCV】检测人脸、眼睛、鼻子、耳朵、嘴

2017-05-20 20:31 1376 查看
Opencv中有训练好的Haar特征分类器(.xml文件),位于“/opencv-2.4.11/data/haarcascades/”文件夹中,调用起来非常简单。

举个例子,我们想检测图片中的眼睛,就可以使用“haarcascade_eye.xml”这个分类器来做检测,代码如下:

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/calib3d/calib3d.hpp>
using namespace std;
using namespace cv;

int main(){
Mat image,image_gray;
image = imread("lena.jpeg");
cvtColor(image,image_gray,CV_BGR2GRAY );//转为灰度图
equalizeHist(image_gray,image_gray);//直方图均衡化,增加对比度方便处理
CascadeClassifier eye_Classifier;//载入分类器
if(!eye_Classifier.load("haar/haarcascade_eye.xml")){
cout<<"Load haarcascade_mcs_eye.xml failed!"<<endl;
return 0;
}
vector<Rect> eyeRect;
eye_Classifier.detectMultiScale( image_gray, eyeRect, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) );//检测
for (size_t eyeIdx = 0;eyeIdx < eyeRect.size();eyeIdx++){//画出检测到的位置
rectangle(image,eyeRect[eyeIdx],Scalar(0,0,255));
}
namedWindow("lena",0);
imshow("lena",image);
waitKey(0);
return 0;
}


检测结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv
相关文章推荐