Wybór najlepszego zakresu wartości z krzywej histogramu

Scenariusz:

Próbuję śledzić dwa różne kolorowe obiekty. Na początku użytkownik jest proszony o przytrzymanie pierwszego kolorowego obiektu (powiedzmy, może być CZERWONYM) w określonej pozycji przed kamerą (zaznaczonej na ekranie prostokątem) i naciśnięcie dowolnego klawisza, a mój program bierze tę część ramki (ROI) i analizuj kolor w nim, aby znaleźć kolor do śledzenia. Podobnie też dla drugiego obiektu. Następnie, jak zwykle, użyjcv.inRange funkcja w płaszczyźnie kolorów HSV i śledzenie obiektu.

Co jest zrobione :

Wziąłem ROI obiektu do śledzenia, przekonwertowałem na HSV i sprawdziłem histogram Hue. Mam dwie sprawy jak poniżej:

(tutaj jest tylko jeden główny szczyt centralny. Ale w niektórych przypadkach otrzymuję dwa takie piki, jeden większy pik z jakimś skupiskiem pikseli wokół niego i drugi szczyt, mniejszy niż pierwszy, ale znaczący rozmiar z małym skupiskiem wokół niego) . Nie mam teraz tego przykładowego obrazu, ale wygląda to prawie jak poniżej (utworzony w farbie))

Pytanie:

How can I get best range of hue values from these histograms?

Mam na myśli, że najlepszy zasięg może wynosić około 80-90% pikseli w ROI w tym zakresie.

A może jest lepsza metoda niż śledzenie różnych kolorowych obiektów?

questionAnswers(1)

yourAnswerToTheQuestion