Открыть сервисСервис

Контуринг — технология выделения объектов на изображениях

Контуринг (от англ. contouring — контурирование) — это метод обработки цифровых изображений и компьютерного зрения, направленный на обнаружение и выделение границ (контуров) объектов на снимке или видеокадре. Контур определяется как последовательность точек, соединяющих пиксели, резко отличающиеся по яркости, цвету или текстуре от соседних. Технология применяется в распознавании объектов, анализе форм, редактировании изображений, промышленном контроле качества и медицинской диагностике.

Основные принципы

Контуринг основан на идентификации локальных изменений интенсивности изображения. Граница между двумя областями (например, тёмным объектом на светлом фоне) проявляется как скачок яркости — градиент. Алгоритмы контурирования вычисляют градиенты изображения и определяют точки, где изменение интенсивности превышает заданный порог.

Ключевые этапы типичного конвейера обработки:

  1. Предобработка — сглаживание шума (гауссово размытие, медианный фильтр), повышение контраста.
  2. Вычисление градиентов — определение направления и величины изменения яркости для каждого пикселя.
  3. Подавление немаксимумов — ослабление пикселей, не являющихся локальными максимумами градиента, для получения тонких линий шириной в один пиксель.
  4. Гистерезисный порог — разделение точек на «сильные» и «слабые» граничные точки по двум пороговым значениям; слабые точки сохраняются, только если соединены с сильными.
  5. Постобработка — соединение точек в непрерывные контуры, устранение разрывов, упрощение полигонов.

Основные алгоритмы

Алгоритм Кэнни

Разработан Джоном Кэнни в 1986 году и считается эталонным методом контурирования. Многоступенчатый алгоритм включает подавление шума, вычисление градиента по оператору Собеля, подавление немаксимумов и двойной порог с гистерезисом. Результат — тонкие, непрерывные контуры с минимальным числом ложных срабатываний.

Оператор Собеля

Простой оператор, использующий свёртку изображения с двумя ядрами 3×3 для вычисления горизонтальных и вертикальных градиентов. Даёт грубое приближение границ, чувствителен к шуму, но быстр в вычислении.

Оператор Лапласа

Вычисляет вторую производную изображения (лапласиан). Границы определяются по переходу знака производной. Требует предварительного сглаживания, так как чувствителен к шуму.

Алгоритм Судзуки–Акамине

Метод трассировки контуров по иерархии вложенных областей, реализованный в функции findContours библиотеки OpenCV. Позволяет находить контуры внешних и внутренних границ (например, дыр в объектах) и строить дерево вложенности.

Метод активных контуров (снэйк)

Предложен Михаэлем Кассом, Эндрю Уитакером и Ричардом Соркиным в 1988 году. Кривая («снэйк») итеративно деформируется под действием внутренних сил (гладкость) и внешних сил (притяжение к границам изображения), пока не стабилизируется на контуре объекта.

Алгоритм Дойча

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

Классификация методов

КритерийВиды
По подходуДетекторы градиента, методы активных контуров, трассировщики
По выходуТочечные (пиксели границ), контурные (замкнутые кривые), векторные
По обрабатываемым данным2D-изображения, 3D-меш, видеопотоки
По обнаружениюДетерминированные, вероятностные (с учётом неопределённости)

Применение

Компьютерное зрение и робототехника

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

Обработка изображений и дизайн

В графических редакторах (Adobe Photoshop, GIMP, Krita) контурирование используется для выделения объектов и создания масок. В Adobe Photoshop функция «Контурная обводка» (Stroke Path) позволяет обводить векторные пути по заданной толщине и цвету.

Промышленный контроль

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

Медицинская диагностика

Контурирование применяется для сегментации органов и опухолей на КТ, МРТ и рентгеновских снимках. Автоматическое выделение границ помогает врачам оценивать размеры и динамику изменений.

Автономное вождение

Детектирование контуров дорожной разметки, транспортных средств и пешеходов — один из ключевых этапов восприятия среды автопилотом.

Программные реализации

  • OpenCV — библиотека компьютерного зрения с функциями Canny, findContours, approxPolyDP, Sobel, Laplacian.
  • scikit-image — модуль skimage.feature с детектором Кэнни и функциями контурного анализа.
  • MATLAB — функции edge, bwtraceboundary, bwboundaries.
  • ImageJ — плагины для трассировки контуров в научных исследованиях.

Ограничения

Точность контурирования снижается при наличии шума, размытых границ, неравномерного освещения и низкого контраста. Пороговые значения требуют подбора под конкретные условия съёмки. Для сложных сцен с перекрывающимися объектами классические методы часто дополняют нейросетевыми подходами — семантической сегментацией (U-Net, Mask R-CNN), где границы объектов предсказываются моделью, а не вычисляются градиентами.

Источники:

  • Кэнни Дж. «A Computational Approach to Edge Detection», IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986.
  • Судзуки С., Акамине Т. «Topological structural analysis of digitized binary images by border following», Computer Vision, Graphics, and Image Processing, 1985.
  • Касс М., Уитакер А., Соркин Р. «Snakes: Active contour models», International Journal of Computer Vision, 1988.
  • Брэдски Г., Каэба А. «Learning OpenCV», O'Reilly Media, 2008.
  • Сонка М., Хлавач В., Бойл Р. «Обработка изображений. Анализ и машинное зрение», Вильямс, 2015.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru