Назад в библиотеку

Сегментация изображения с OpenCV и Python

Авторы:P. Barlow
Источник: Electrical engineering , 2018 г.

Аннотация

В данной работе рассматриваются,как просто сегментировать объект из изображения на основе цвета с помощью Python и OpenCV. Популярная библиотека компьютерного зрения, написанная на C/C++ и связанная с Python, OpenCV, предлагает простые способы манипулирования цветовыми пространствами.

Ключевые слова: распознавание образов, OpenCV, компьютерное зрение.

Алгоритмы оконтуривания границ объектов на цветном изображении (алгоритмы объектной цветовой сегментации) являются необходимым инструментом для решения различных прикладных задач в области обработки цветных изображений, связанных с их редактированием, анализом, синтезом, восстановлением и сжатием. Хотя в настоящий момент уже разработано большое число таких алгоритмов, как для автоматической, так и для контролируемой оператором сегментации, использование большинства из них не обеспечивает удовлетворительного результата. Причина этого в первую очередь заключается в том, что в этих алгоритмах моделью изображения однородно окрашенного объекта является однородный по цвету участок изображения. Однако, из–за существенных неоднородностей мощности и цветности освещения в пространстве сцены, а также по причине сложной структуры индикатрис рассеяния поверхностей объектов в сцене, изображение однородно окрашенного объекта является, как правило, существенно неоднородным по цвету. Более того, на изображении объекта появляются и дополнительные контрастные границы (границы бликов, теней и затенений).

Примеры цветов RGB

Рисунок 1 – Примеры цветов RGB

В итоге, при сегментации изображения классическими методами объект дробится на более мелкие области, границы которых не соответствуют какому–либо скачку отражательных свойств поверхности. Поэтому очевидно, что задача объектной сегментации не может быть удовлетворительно решена без учета оптических явлений, порождающих на изображении границы различных типов. Хотя уже давно понятно, что алгоритмы цветовой сегментации можно развивать, только ориентируясь на физическую модель сцены (с ее ограничениями и приближениями), число таких алгоритмов, тем более реализованных программно, исчисляется единицами (Николаев, 1988; Klinker et al., 1990; Gevers and Smeulders, 1999). В то же время потребность в устойчиво работающих алгоритмах цветовой сегментации велика. Таким образом, актуальность создания новых методов и алгоритмов обработки цветного изображения (основывающихся на физическом подходе) вполне очевидна.

В наиболее распространенном цветовом пространстве, RGB (Красный Зеленый Синий) цвета представлены с точки зрения их составляющих красного, зеленого и синего. Если говорить в более техническом плане, RGB описывает цвет как кортеж трех компонентов. Каждый из них может быть значением от 0 до 255, где (0, 0, 0) представляет черный цвет, а (255, 255, 255) – белый.

RGB считается аддитивным цветовым пространством, где цвета являются произведением красного, синего и зеленого света на черный фон.

Объект обнаружения

Рисунок 2 – Объект обнаружения

Результатом работы алгоритма является выделение на сцене искомого объекта, нахождение его контура и вывод информации об искомом объекте на экран.

Результат работы алгоритма

Рисунок 3 – Результат работы алгоритма

Список использованной литературы

  1. Shervin Emami. Face Recognition using Eigenfaces or Fisherfaces // in Mastering OpenCV with Practical Computer Vision Projects. Pact Publishing, 2012. ISBN 1849517827.
  2. . Cendrillon R., Lovell B. (2000). Real–time face recognition using eigenfaces. Visual Communications and Image Processing. pp. 269–276