OpenCV3_C++_DetectEye()图像眼睛识别 实例

来源:互联网 发布:51单片机论坛hex 编辑:程序博客网 时间:2024/05/19 10:40

Opencv3 的开发环境安装和导入请看

http://blog.csdn.net/sileixinhua/article/details/71175748

所有的OpenCV3_C++实例代码请看

https://github.com/sileixinhua/OpenCV_C-_tutorials

实例

#include "stdafx.h"#include <opencv2/opencv.hpp>#pragma comment(lib,"opencv_world330.lib")//using namespace cv;//using namespace std;//去掉以上两行代码注释之后就可以不用在下面的代码中加上cv::和std:://cv::为OpenCV的函数库//std::为C++的标准函数库int DetectEye() {    cv::Mat src, gray, equalize, dst;    const char* filename = "C:\\Code\\FirstOpenCVProgramming\\lena.jpg";    cv::imread(filename).copyTo(src);    if (src.empty()) {        throw("Faild open file.");    }    cvtColor(src, gray, cv::COLOR_RGB2GRAY);    equalizeHist(gray, equalize);    cv::CascadeClassifier objDetector("C:\\OpenCV\\opencv\\build\\etc\\haarcascades\\haarcascade_eye.xml");    //和脸部识别一样,就是特征文件变化了    std::vector<cv::Rect> objs;    objDetector.detectMultiScale(equalize, objs, 1.2, 2, CV_HAAR_SCALE_IMAGE, cv::Size(30, 30));    src.copyTo(dst);    std::vector<cv::Rect>::const_iterator it = objs.begin();    for (; it != objs.end(); ++it) {        rectangle(dst, cv::Point(it->x, it->y),            cv::Point(it->x + it->width, it->y + it->height),            cv::Scalar(0, 0, 255), 2, CV_AA);    }    cv::imshow("src", src);    cv::imshow("dst", dst);    cv::imwrite("C:\\Code\\FirstOpenCVProgramming\\DetectEye.jpg", dst);    cv::waitKey();}int main(){    //以下的方法如果想运行,直接把前头的注释去掉即可    //运行代码的时候请改掉filename里的地址    //我的opencv是安装在C盘目录下    //一些目录地址请自行修改一下    DetectEye();//图像眼睛识别    return 0;}

原图像

这里写图片描述

结果图像

这里写图片描述

原创粉丝点击