1

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

在下面的代码中,我将检测蓝色对象,请告诉我我在代码中做了哪些更改,以便我可以使用 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;
    }
4

2 回答 2

1

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

多看形状,每个人都有不同颜色的眼睛,但形状是圆形/椭圆形。用于检测圆的Hough 变换有多种变体。

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

于 2013-01-20T11:23:08.160 回答
1

使用 Haar 分类器更容易​​进行眼睛检测。 链接在这里

于 2013-01-20T13:29:53.247 回答