Когда вы пробуете пороговое значение в OpenCV, вы делаете это с цветовыми форматами RGB (красный, зеленый, синий) или HSV (оттенок, насыщенность, значение)?Исходя из личного опыта, я считаю, что кодирование HSV намного лучше для отслеживания цветных объектов в видеоматериале при использовании вместе с OpenCV для определения порога и cvBlobsLib для определения местоположения BLOB-объекта.
HSV проще, поскольку HSV имеет преимуществонеобходимости использовать только одно число для определения цвета («оттенок»), несмотря на очень реальную вероятность наличия нескольких оттенков этого цвета, от светлых до более темных оттенков.(Количество цвета и яркость цвета обрабатываются параметрами «насыщенность» и «значение» соответственно).
I пороговое значение эталонного изображения HSV («imgHSV») для получения двоичного (черного иwhite) изображение с использованием вызова cvInRange () API OpenCV:
cvInRangeS( imgHSV,
cvScalar( 104, 178, 70 ),
cvScalar( 130, 240, 124 ),
imgThresh );
В приведенном выше примере два параметра cvScalar представляют собой нижнюю и верхнюю границы значений HSV, представляющих оттенки синеватого цвета.В моих собственных экспериментах я смог получить некоторые подходящие максимальные / минимальные значения, сделав снимки экрана с объектами, которые я интересовал, отслеживая и наблюдая типы возникающих значений оттенка / насыщенности / яркости.
Подробнееподробные описания с примером кода можно найти в этом блоге .