1

目を検出したいのですが、青色のオブジェクトを検出できるコードがいくつかあるので、変更を加えると (どのように変更できますか?)、目を検出することが可能になります。以下の色には独自の範囲値があるため、目の色の 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;
    }
4

2 に答える 2

1

Haar 分類器を使用すると、目の検出がはるかに簡単になります。 ここにリンク

于 2013-01-20T13:29:53.247 に答える
1

このような単純な方法は、いくつかのしきい値を使用して青いオブジェクトを抽出することで機能する可能性がありますが、別の色の黒を使用して適応できる場合でも? 青い?緑?誰もが異なる目の色を持っています。HSV しきい値に基づいて、このようなブロブ抽出を使用する非ハッキーな方法が機能しているとは思いません。この方法は、同じ色の大きなブロック、つまり青い背景を削除する場合にうまく機能します。

形をもっと見てください。誰もが異なる色の目をしていますが、形は円形/楕円形です. 円を検出するためのハフ変換にはいくつかのバリエーションがあります。

...ハフ変換は、任意の形状、最も一般的には円または楕円の位置を特定するように拡張されました。

于 2013-01-20T11:23:08.160 に答える