Selecionando o melhor intervalo de valores da curva do histograma

Cenário:

Eu estou tentando rastrear dois objetos coloridos diferentes. No início, o usuário é solicitado a segurar o primeiro objeto colorido (digamos, pode ser um VERMELHO) em uma posição específica na frente da câmera (marcada na tela por um retângulo) e pressionar qualquer tecla, então meu programa pega essa parte do quadro (ROI) e analise a cor, para encontrar a cor a seguir. Da mesma forma para o segundo objeto também. Então, como de costume, usecv.inRange função no plano de cores HSV e rastrear o objeto.

O que é feito:

Tomei o ROI do objeto a ser rastreado, converti-o em HSV e verifiquei o histograma da Matiz. Eu tenho dois casos como abaixo:

(aqui há apenas um grande pico central. Mas, em alguns casos, recebo dois desses picos, um pico maior com um agrupamento de pixels ao redor dele e segundo pico, menor que o primeiro, mas tamanho significativo com pequeno agrupamento ao redor também Eu não tenho uma imagem de amostra agora, mas quase como abaixo (criado em tinta)

Pergunta:

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

Por melhor intervalo quero dizer, pode ser em torno de 80-90% dos pixels no ROI estão nessa faixa.

Ou existe algum método melhor do que isso para rastrear objetos coloridos diferentes?

questionAnswers(1)

yourAnswerToTheQuestion