Parámetro OpenCV InRange

Estoy usando OpenCV en Android para encontrar círculos de colores específicos en tiempo real. Mi primer paso es mantener solo los píxeles que corresponden al color definido que estoy buscando (rojo o verde en este ejemplo).Imagen de ejemplo.

Para este propósito estoy usando el métodoen el rango().

Aquí está mi pregunta: ¿Qué tipo de modelo de color (RGB, BGR, HSV, ..) se requiere como parámetro de color de límite inferior / superior? Y: ¿cuál es una buena práctica para definir estos límites de color con respecto a los cambios de brillo natural?

matRgba = inputFrame.rgba();

Scalar lowerColorBound = Scalar(0.0, 0.0, 0.0); // Blue, Green, Red?
Scalar upperColorBound = Scalar(0.0, 0.0, 0.0);

// convert to HSV, necessary to use inRange()
Imgproc.cvtColor(matRgba, matRgba, Imgproc.COLOR_RGB2HSV);

// keep only the pixels defined by lower and upper bound range
Core.inRange(matRgba, lowerColorBound, upperColorBound, matRgba);

Respuestas a la pregunta(1)

Su respuesta a la pregunta