Как определить цвет изображения Matlab? - PullRequest
1 голос
/ 30 сентября 2011

мы выполняем проект робототехники на основе матовой лаборатории, который на самом деле сортирует объекты по цвету, поэтому нам нужен алгоритм для определения определенного цвета по изображению, полученному с камеры с использованием матовой лабораторииэто будет очень полезно, если кто-то может помочь мне с этим. это видео проекта

Ответы [ 4 ]

3 голосов
/ 30 сентября 2011

В ответ на ответ Амро:

Five squares with the same hue value but visually different colors

Все пять квадратов имеют одинаковое значение оттенка в пространстве HSV.Выбор по оттенку полезен, но вы также захотите наложить некоторые ограничения на насыщенность и значение.

HSV позволяет описывать цвет более понятным для человека способом, но вам все равно нужно смотреть на всетри значения.

1 голос
/ 30 сентября 2011

В качестве отправной точки я бы использовал пространство rgb и евклидову норму, чтобы определить, имеет ли пиксель заданный цвет.Как правило, у вас есть 3 значения для пикселя: [red green blue].У вас также есть 3 значения, определяющие целевой цвет: [255 0 0] для красного.Вычислите евклидову норму между этими двумя векторами и примените порог принятия решения, чтобы классифицировать цвет вашего пикселя.

В конце концов, вы хотите избавиться от коэффициента яркости (т. Е. Ярко-красный или темно-красный?).Вы можете переключиться в пространство HSV и использовать ту же норму для значения H.Или вы можете использовать [red/green blue/green] векторов.Перед этим примените фильтр низких частот к изображениям, потому что деления (также присутствующие в преобразовании hsv2rgb) имеют тенденцию увеличивать шум.

1 голос
/ 30 сентября 2011

Возможно, вы захотите преобразовать в цветовое пространство HSV и определить цвета на основе значений оттенка.MATLAB предлагает функцию RGB2HSV .

Вот пример представления на файловом обмене, иллюстрирующий обнаружение цвета на основе оттенка.

0 голосов
/ 28 февраля 2014

Для получения маски одного цвета, прежде всего, преобразуйте серый цвет изображения rgb, используя rgb2gray. Также извлеките желаемую цветовую плоскость из изображения rgb (например, для получения красной равнины дайте rgb_img (:,:, 1)). Вычтите данную плоскость из серого изображения ........

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...