使用Open CV中的HSV值检测Eye

时间:2013-01-20 11:08:40

标签: c opencv eye-detection

我想检测一只眼睛,我有一些代码,我可以检测到蓝色物体,所以如果我做了改变(我怎么能?)那么我就有可能检测到一只眼睛。由于下面的颜色有自己的特定范围值,如果我指定眼睛颜色HSV值,那么我可以用这种方法检测EYE。

在下面的代码中,我将检测BLUE Color Object,请告诉我我的代码在哪里更改,以便我可以使用Open CV获得EYE。

     IplImage* GetThresholdedImage(IplImage* img)
    {
    // Convert the image into an HSV image
    IplImage* imgHSV = cvCreateImage(cvGetSize(img), 8, 3);
    cvCvtColor(img, imgHSV, CV_BGR2HSV);

    IplImage* imgThreshed = cvCreateImage(cvGetSize(img), 8, 1);
      //For detecting BLUE color i have this HSV value, 
     cvInRangeS(imgHSV, cvScalar(112, 100, 100), cvScalar(124, 255, 255), imgThreshed);//this will not recognize the yellow color
     cvReleaseImage(&imgHSV);
      return imgThreshed;
    }

2 个答案:

答案 0 :(得分:1)

这种简单的方法可以使用一些阈值处理来提取蓝色物体,但即使它可以使用不同的颜色黑色进行调整?蓝色?绿色?每个人都有不同的眼睛颜色。我没有看到使用基于HSV阈值的blob提取的非hacky方法。此方法适用于相同颜色的大块,即删除蓝色背景。

在形状上看,每个人都有不同颜色的眼睛,但形状是圆形/椭圆形。有Hough Transform的变量用于检测圆圈。

  

...霍夫变换已经扩展到识别位置   任意形状,最常见的是圆形或椭圆形。

答案 1 :(得分:1)

使用Haar分类器,眼睛检测更容易。 link here