Я хочу сделать программу, которая отслеживает положение пера с помощью светодиода, перемещает мышь и клики. Для этого я использую rgb led и opencv с C++. Однако для любого из трех цветов я просто получаю hsv 87,9,255. Как их отличить?Как отличить цвет HSV от RGB в opencv?
ответ
Лучше преобразовать ВПГ цветового пространства, если вы делаете сегментацию цвета на основе, так как она не влияет на яркость и свет вариацию,
Вы можете использовать цветовую гамму, как
cvtColor(src, hsv, CV_BGR2HSV);
inRange(hsv,Scalar(0,50,40), Scalar(10,255,255),thr1); //upper red range of hue cylinder
inRange(hsv,Scalar(165,50,40), Scalar(179,255,255),thr2);// lower red range of hue cylinder
thr1+=thr2; // Red pixels.
Также см. Цветное hsv-колесо here, которое поможет вам получить точный цветовой диапазон в hsv для определенного цвета.
Спасибо;). Я думаю, что я нашел решение по цвету, по крайней мере, я просто попытался использовать черный пластик в качестве фона. Теперь я получаю разные значения для каждого цвета светодиодов. – Vitorbnc
Об установке указателя мыши и нажатии, вы можете помочь мне с кодом? Я использую linux. – Vitorbnc
@Vitorbnc См. Ответ здесь http://stackoverflow.com/questions/22140880/drawing-rectangle-or-line-using-mouse-events-in-open-cv-using-python – Haris
HSV - еще один способ представления цветов. Яркие первичные цвета должны иметь значение H (87), изменяющееся больше, чем два других значения, но у вас, похоже, есть еще одна проблема здесь ... – Vince
Будет ли использование цветового пространства bgr лучше? Код, который я использовал для получения значений, здесь [ссылка на блог, код на python] (http://achuwilson.wordpress.com/2012/02/14/hsv-pixel-values-in-opencv/) – Vitorbnc
Если у вас просто есть 3 цвета, да, я определенно придерживаюсь значений RGB; вы можете просто получить канал с самым высоким значением для прямого определения цвета, вместо того, чтобы пытаться оценить, находится ли цвет в определенном диапазоне оттенков. Но, как я уже сказал, я не уверен, что ваша проблема связана с цветовым пространством или даже с преобразованием цвета, но, вероятно, больше с получением цвета пера на вашем изображении ... Каковы значения, которые вы получаете в цветовом пространстве RGB ? Это имеет смысл? – Vince