Диапазон на стойността за Image HSV за цветно извличане EMGUCV

В следното,

        Image<Hsv, Byte> hsvimg = img.Convert<Hsv, Byte>();           
        Image<Gray, Byte>[] channels = hsvimg.Split();  
        Image<Gray, Byte> imghue = channels[0];         
        Image<Gray, Byte> imgsat = channels[1];
        Image<Gray, Byte> imgval = channels[2];         

        Image<Gray, byte> huefilter = imghue.InRange(new Gray(?), new Gray(?));            
        Image<Gray, byte> satfilter = imghue.InRange(new Gray(?), new Gray(?));
        Image<Gray, byte> valfilter = imgval.InRange(new Gray(?), new Gray(?));

Каква е стойността на обхвата на различни канали (h, s, v) за различно извличане на цветове? Дали е 0-255 или 0-128. Искам да открия оранжев, черен и небесносин обект за изображение.


person littleBrain    schedule 26.05.2011    source източник


Отговори (1)


Можете ли да опитате нещо подобно за портокал

 Image<Gray, byte> huefilter = 
                imghue.InRange(new Gray(Color.Orange.GetHue() - 10), 
                                     new Gray(Color.Orange.GetHue() + 10));   

-10 и +10 е само предположение и може да бъде широко. просто си поиграйте с него и вижте какво работи.

за satfilter можете да използвате Color.Orange.GetSaturation()

и за третия, предполагам, че можете да използвате Color.Orange.GetBrightness()

person Bala R    schedule 26.05.2011
comment
Color.Orange.GetHue() връща стойност от 0-255, Color.Orange.GetSaturation() връща стойност от 0-1, малко съм объркан какво изискват стойностите на диапазона img.InRange()... все още не мога да открия оранжевият - person littleBrain; 26.05.2011
comment
@littleBrain провери този кодов файл code.google.com/p/howme/source/browse/trunk/PC_Client/MyRobot/ - person Bala R; 26.05.2011
comment
Color.Orange.GetSaturation() ... е Color под System.Drawing Namespace? - person littleBrain; 28.05.2011