Hello guys, I am beginner at Opencv.I found eye regions via haar and cropped them.However , now I am trying to find pupils.
Do you have any suggestion to how to add pupil detection on those codes?
Thank you.
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
int main(int argc, const char** argv)
{
CascadeClassifier eye;
CascadeClassifier righteye;
CascadeClassifier lefteye;
eye.load("haarcascade_mcs_eyepair_small.xml");
righteye.load("haarcascade_mcs_lefteye.xml");
lefteye.load("haarcascade_mcs_righteye.xml");
VideoCapture vid;
vid.open(0);
if (!vid.isOpened())
{
cout<<"webcam yuklenemedi"<>frame;
cvtColor(frame, grires, CV_BGR2GRAY); //resmi gri renk uzayına çevirir.
//equalizeHist(grires, grires); //istenirse histogram eşitlenir.
vector eyepair;
eye.detectMultiScale(grires, eyepair, 1.1, 3, 0, Size(30,30));
for(int i = 0; i < eyepair.size(); i++)
{
rectangle(frame, eyepair[i], Scalar(0, 255, 0));
Mat ROI =grires(eyepair[i]);
vector reye;
vector leye;
righteye.detectMultiScale(ROI, reye, 1.1, 3, 0, Size(30,30));
lefteye.detectMultiScale(ROI, leye, 1.1, 3, 0, Size(30,30));
for(int t = 0; t < reye.size(); t++)
{
bool isRightEye = reye[t].x > eyepair[i].width / 2;
reye[t].x += eyepair[i].x;
reye[t].y += eyepair[i].y;
rectangle(frame, reye[t], Scalar(0, 255, 0));
if(isRightEye)
frame3 = grires(reye[t]);
}
for(int z = 0; z < leye.size(); z++)
{
bool isLeftEye = leye[z].x < eyepair[i].width / 2;
leye[z].x += eyepair[i].x;
leye[z].y += eyepair[i].y;
rectangle(frame, leye[z], Scalar(0, 255, 0));
if(isLeftEye)
frame2 = grires(leye[z]);
}
}
imshow("algilanan", frame);
if(!frame2.empty())
imshow("algilanan2", frame2);
if(!frame3.empty())
imshow("algilanan3", frame3);
waitKey(33);
}
return 0;
}
↧