资源简介

使用opencv自带的haarcascade_eye_tree_eyeglasses.xml分类器实现检测人眼,并精准地定位了瞳孔的位置。代码很简洁,易于理解。

资源截图

代码片段和文件信息


#include “highgui.h“
#include “cv.h“
#include 
#include 

using namespace std;
using namespace cv;


void DetectAndDraw(IplImage* img CascadeClassifier& cascade);

//String cascadeName = “haarcascade_frontalface_alt.xml“;
String cascadeName = “haarcascade_eye_tree_eyeglasses.xml“;//nestedCascadeName

int main( )
{
CascadeClassifier cascade;
cascade.load( cascadeName );
cvNamedWindow( “result“ 1 );

IplImage* iplImg = cvLoadImage(“1.jpg“);

DetectAndDraw( iplImg cascade );

cvWaitKey(0);

cvDestroyWindow(“result“);

return 0;
}


void DetectAndDraw(IplImage* img CascadeClassifier& cascade)
{
int i = 0;
double t = 0;
vector faces;
const static Scalar colors[] =  { CV_RGB(00255)
CV_RGB(0128255)
CV_RGB(0255255)
CV_RGB(02550)
CV_RGB(2551280)
CV_RGB(2552550)
CV_RGB(25500)
CV_RGB(2550255)} ;
IplImage* gray = cvCreateImage(cvGetSize(img)81);
cvCvtColor( img gray CV_BGR2GRAY );
cvEqualizeHist( gray gray );

t = (double)cvGetTickCount();
cascade.detectMultiScale( gray  faces
1.1 2 0
//|CV_HAAR_FIND_BIGGEST_object
//|CV_HAAR_DO_ROUGH_SEARCH
|CV_HAAR_SCALE_IMAGE

Size(30 30) );
t = (double)cvGetTickCount() - t;
printf( “detection time = %g ms\n“ t/((double)cvGetTickFrequency()*1000.) );

for( vector::const_iterator r = faces.begin(); r != faces.end(); r++ i++ )
{
Point center;
Scalar color = colors[i%8];
int radius;
//center可以作为瞳孔的坐标
center.x = cvRound(r->x + r->width*0.5);
center.y = cvRound(r->y + r->height*0.5);
//radius = (int)(cvRound(r->width + r->height)*0.25);
radius =2;
cvCircle( img center radius color 3 8 0 );
cvShowImage( “result“ img );
}

cvShowImage( “result“ img );
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      72704  2014-07-26 13:02  DetectEyes\Debug\DetectEyes.exe

     文件     723476  2014-07-26 13:02  DetectEyes\Debug\DetectEyes.ilk

     文件    1518592  2014-07-26 13:02  DetectEyes\Debug\DetectEyes.pdb

     文件     163712  2014-07-25 14:59  DetectEyes\DetectEyes\1.jpg

     文件       8194  2014-07-26 13:02  DetectEyes\DetectEyes\Debug\BuildLog.htm

     文件        663  2014-07-25 20:19  DetectEyes\DetectEyes\Debug\DetectEyes.exe.embed.manifest

     文件        728  2014-07-25 20:19  DetectEyes\DetectEyes\Debug\DetectEyes.exe.embed.manifest.res

     文件        621  2014-07-26 13:02  DetectEyes\DetectEyes\Debug\DetectEyes.exe.intermediate.manifest

     文件     198867  2014-07-26 13:02  DetectEyes\DetectEyes\Debug\DetectEyes.obj

     文件         66  2014-07-26 13:02  DetectEyes\DetectEyes\Debug\mt.dep

     文件     551936  2014-07-26 13:02  DetectEyes\DetectEyes\Debug\vc90.idb

     文件     937984  2014-07-26 13:02  DetectEyes\DetectEyes\Debug\vc90.pdb

     文件       1755  2014-07-26 13:02  DetectEyes\DetectEyes\DetectEyes.cpp

     文件       4711  2014-07-25 20:19  DetectEyes\DetectEyes\DetectEyes.vcproj

     文件       1413  2014-07-26 13:13  DetectEyes\DetectEyes\DetectEyes.vcproj.Wenbo-PC.Wenbo.user

     文件    1095035  2013-01-28 08:17  DetectEyes\DetectEyes\haarcascade_eye_tree_eyeglasses.xml

     文件     919871  2013-01-28 08:17  DetectEyes\DetectEyes\haarcascade_frontalface_alt.xml

     文件     837462  2013-01-28 08:17  DetectEyes\DetectEyes\haarcascade_frontalface_alt2.xml

     文件    3566592  2014-07-26 13:13  DetectEyes\DetectEyes.ncb

     文件        896  2014-07-25 20:12  DetectEyes\DetectEyes.sln

    ..A..H.     10240  2014-07-26 13:13  DetectEyes\DetectEyes.suo

     文件     755444  2014-07-26 13:06  DetectEyes\result.png

     文件       1435  2014-07-26 13:12  DetectEyes\总结.txt

     目录          0  2014-07-26 13:02  DetectEyes\DetectEyes\Debug

     目录          0  2014-07-26 11:48  DetectEyes\Debug

     目录          0  2014-07-26 13:22  DetectEyes\DetectEyes

     目录          0  2014-07-26 13:19  DetectEyes

----------- ---------  ---------- -----  ----

             11372397                    27



............此处省略0个文件信息

评论

共有 条评论