Обработка изображений - Какой алгоритм OpenCV подойдет для моих нужд? - PullRequest
3 голосов
/ 04 августа 2011

Я недавно начал работать над небольшой программой для любителей в области обработки изображений, и я вроде как новичок в обработке изображений, но я пытаюсь выяснить хотя бы некоторые его аспекты.

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

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

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

Надеюсь, я достаточно ясно дал понять.

Большое спасибо!

Ответы [ 3 ]

5 голосов
/ 04 августа 2011

Понимание цветовых пространств - RGB почти всегда является худшим источником для обработки изображений.

Начните с HSL и HSV

4 голосов
/ 04 августа 2011

Разделить или сделать цвет прозрачным (например, удалить его) очень просто с OpenCV ... Я опубликовал ответ (см. Ссылку ниже), который должен помочь вам (или, возможно, решить вашу проблему).

Вот код, который я разместил

  • Более того, ответ Мартина Беккета абсолютно верный, RGB не является хорошим цветовым пространством для оценки цвета, вы можете использовать HSV, значение оттенка в градусах говорит вам о правильном цвете (что-то, что вы можете сравнить с длиной волны в спектр света) в то время как S и V кодируют своего рода интенсивность (я говорю об упрощении, чтобы объяснить, что во многих случаях достаточно использовать Hue для сегментирования цветных изображений).

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

Добро пожаловать в сообщество по обработке изображений,

Julien

0 голосов
/ 21 апреля 2016

Для начала вы должны узнать о работе с массивом изображений, например, используя функцию OpenCV inRange для фильтрации цветов от минимального до максимального цветового диапазона.Другой вариант заключается в разделении многоканального массива (в данном случае R, G и B) на 3 разных одноканальных для дальнейшего изучения.Надеюсь, что его помощь

...