我想检测一只眼睛,我有一些代码,我可以检测到蓝色物体,所以如果我做了改变(我怎么能?)那么我就有可能检测到一只眼睛。由于下面的颜色有自己的特定范围值,如果我指定眼睛颜色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;
}
答案 0 :(得分:1)
这种简单的方法可以使用一些阈值处理来提取蓝色物体,但即使它可以使用不同的颜色黑色进行调整?蓝色?绿色?每个人都有不同的眼睛颜色。我没有看到使用基于HSV阈值的blob提取的非hacky方法。此方法适用于相同颜色的大块,即删除蓝色背景。
在形状上看,每个人都有不同颜色的眼睛,但形状是圆形/椭圆形。有Hough Transform的变量用于检测圆圈。
...霍夫变换已经扩展到识别位置 任意形状,最常见的是圆形或椭圆形。
答案 1 :(得分:1)
使用Haar分类器,眼睛检测更容易。 link here