2015-03-26 5 views
-1

Кто-то, пожалуйста, объясните мне, почему следующий код предназначен для обнаружения области красного цвета и как насчет другого цвета? Примечание: исходное изображение находится в формате BGR.Обнаружение области красного цвета

split(frame, channels); 
add(channels[0], channels[1], channels[1]); 
subtract(channels[2], channels[1], channels[2]); 
threshold(channels[2], thresh_frame, 50, 255, CV_THRESH_BINARY); 
+1

Кто-то пожалуйста, объясните мне, почему мой 'а + b' возвращается' 1.8745'? – Abhineet

ответ

0

Где находятся методы и что они делают?

Дикая догадка: «каналы» относятся к одиночным цветам используемого цветового спектра (RGB, CMYK, ...). Если вы вычитаете RED-канал из исходного изображения (или какая-либо комбинация CMYK дает вам КРАСНУЮ) и посмотрите, будут ли возвращенные значения в определенном диапазоне, вы можете определить, является ли цвет RED или нет.

0

Вероятно, изображение в формате BGR (красный в третьем канале) и код определяет красный цвет пикселей, где

RED-(GREEN+BLUE) >=50 
+0

Да, вы правы. Исходное изображение находится в формате BGR. Я видел, что этот метод лучше, чем поиск значений HSV (с функцией: inrange()). – quangtoi