Опубликован: 02.09.2013 | Доступ: свободный | Студентов: 429 / 54 | Длительность: 19:27:00

Лекция 1: Основные цветовые модели, представление изображения, базовые операции над изображениями

Лекция 1: 1234 || Лекция 2 >

Обработка и анализ бинарных изображений

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

Рассмотрим сначала методы получения бинарных изображений. В некоторых случаях достаточно осуществить пороговую бинаризацию для выделения объектов. Пороговая бинаризация представляется фильтром

B(x,y)=1,\,\, если\A(x,y)>порог,иначе\,\,B(x,y)=0

где A – исходное полутоновое изображение, B – выходное бинарное изображение.

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


Рис. 1.3.

В некоторых случаях для нахождения порога может быть использован метод Отсу [1], который находит порог, минимизирующий вариацию яркостей пикселов в объекте и фоне.

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

Рассмотрим частные случаи морфологической фильтрации – сужение (erode), расширение (dilate), открытие (open), замыкание (close).

Фильтрация сужением осуществляется применением оператора минимума в окрестности каждого пиксела бинарного изображения:

dst(x,y) = min src(x + x', y + y')
(x',y'):element (x',y') \neq 0

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

Фильтрация расширением осуществляется применением оператора максимума в окрестности каждого пиксела бинарного изображения:

dst(x,y) = max src(x + x', y + y')
(x',y'):element (x',y') \neq 0

Фильтрация открытием состоит в последовательном применении фильтрации сужением, а затем расширением с одинаковым структурным элементом.

Фильтрация замыканием состоит в последовательном применении фильтрации расширением, а затем сужением с одинаковым структурным элементом.

Следует отметить, что операцию открытие применяют для фильтрации мелкого шума, а операцию замыкания для заполнения пробелов в объекте.

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

Два пиксела называются связанными, если они расположены в соседних ячейках растра. При этом вводится понятие 4ёх и 8ми связанности. Пикселы 4ёх связанны, если они соседствуют по вертикали и горизонтали и 8ми связанны если ещ? и по диагонали.

Так, например, на бинарном изображении представленном ниже присутствуют две 8ми связанные компоненты и четыре 4ёх связанные.


Рис. 1.4.

Существуют различные методы поиска и подсчета связанных компонент (в [2] можно найти детали рекурсивного алгоритма).

Анализ выделенных связанных компонент может заключатся в вычислении значимых признаков, описывающих найденные объекты.

Перечислим некоторые из этих признаков: площадь S, периметр P, координаты описывающего прямоугольника, центр тяжести, округлость =  P*P/S (отношение квадрата периметра к площади), центральные и смешанные моменты.

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

Извлечение контуров объектов можно осуществить с помощью алгоритма [3], реализованного в библиотеке OpenCV.

Аппроксимация контура позволяет без существенной потери информации в разы уменьшить количество точек в контуре и значительно ускорить контурный анализ. Аппроксимация может быть осуществлена следующим алгоритмом:

  1. Находятся две самые удаленные друг от друга точки контура. Две части контура между ними рассматриваются независимо.
  2. Для каждого полученного участка контура находится точка наиболее удал?нная от прямой соединяющей концевые точки участка.
  3. Если расстояние от точки, найденной на шаге 2 до прямой больше заданного порога, то эта часть контура разбивается этой точкой на два меньших участка.
  4. Если найденное расстояние меньше порога, то вместо этой части контура в результирующий контур сохраняется отрезок соединяющий концевые точки участка.

Шаги 2 и 3 повторяются для всех участков пока выполняется условие 3.


Рис. 1.5.

Процедуру можно проиллюстрировать следующим рисунком:

Контурное (векторное) представление позволяет, например, подсчитать количество дефектов выпуклости фигуры. Дефект выпуклости – это область не принадлежащая фигуре, но принадлежащая ее выпуклой оболочке. Пример дефектов выпуклости контура кисти изображен ниже.


Рис. 1.6.
Лекция 1: 1234 || Лекция 2 >
Андрей Терёхин
Андрей Терёхин

Нахожу в тесте вопросы, которые в принципе не освещаются в лекции. Нужно гуглить на других ресурсах, чтобы решить тест, или же он всё же должен испытывать знания, полученные в ходе лекции?

Демянчик Иван
Демянчик Иван

В главе 14 мы видим понятие фильтра, но не могу разобраться, чем он является в теории и практике.

" Искомый объект можно описать с помощью фильтра F= \lbrace f_{x',y'},x' \in \lbrace0, ...,w_f \rbrace , y' \in \lbrace 0,...,h_f \rbrace \rbrace "