Обнаружение рук с помощью OpenCV

Я использую библиотеку OpenCV для проекта по обработке изображений для обнаружения рук. Я инициализировал изображение в iplimage, раскрасил его, а затем преобразовал в HSV с помощью cvCvtColor(imageHand,imageHand,CV_BGR2HSV );. Я не знаю эффективного алгоритма, поэтому это моя проблема. Пожалуйста, проверьте мой код:

for( int row = 0; row < imageHand->height; row++ )
{
    for ( int col = 0; col < imageHand->width; col++ )
    {
       h =(imageHand->imageData[imageHand->widthStep * row + col * 3]) ;
    s = (imageHand->imageData[imageHand->widthStep * row + col * 3 + 1]);
    v = (imageHand->imageData[imageHand->widthStep * row + col * 3 + 2]);

         if(  h>85)
         {
     imageHand->imageData[imageHand->widthStep * row + col * 3 ]     = 0 ;
     imageHand->imageData[imageHand->widthStep * row + col * 3 + 1 ] =0 ;
     imageHand->imageData[imageHand->widthStep * row + col * 3 + 2 ] = 0 ;
         }
         else
         {
         imageHand->imageData[imageHand->widthStep * row + col * 3 ]     = 255 ;
     imageHand->imageData[imageHand->widthStep * row + col * 3 + 1 ] = 255 ;
         imageHand->imageData[imageHand->widthStep * row + col * 3 + 2 ] = 255 ;

         }


     }
}

Я думаю, что диапазон искомых h составляет > 85!? Если вы знаете лучший алгоритм, пожалуйста, подскажите мне.

8
задан Mohamed Kamal 6 February 2012 в 23:27
поделиться