Математическая морфология

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

    Основные определения


    Термин морфология относится к описанию свойств формы и структуры каких-либо объектов. В контексте машинного зрения этот термин относится к описанию свойств формы областей на изображении. Операции математической морфологии изначально были определены как операции над множествами, но скоро выяснилось, что они также полезны в задачах обработки множества точек в двумерном пространстве. Множествами в математической морфологии представляются объекты на изображении. Легко заметить, то множество всех фоновых пикселов бинарного изображения является одним из вариантов его полного описания.
    В первую очередь математическая морфология используется для извлечения некоторых свойств изображения, полезных для его представления и описания. Например, контуров, остовов, выпуклых оболочек. Также интерес представляют морфологические методы, применяемые на этапах предварительной и итоговой обработки изображений. Например, морфологическая фильтрация, утолщение или утоньшение.
    Входными данными для аппарата математической морфологии являются два изображения: обрабатываемое и специальное, зависящее от вида операции и решаемой задачи. Такое специальное изображения принято называть примитивом или структурным элементом. Как правило, структурный элемент много меньше обрабатываемого изображения. Структурный элемент можно считать описание области с некоторой формой. Понятно, что форма может быть любой, главное, чтобы её можно было представить в виде бинарного изображения заданного размера. Во многих пакетах обработки изображений наиболее распространенные структурные элементы имеют специальные названия: BOX[H,W] –прямоугольник заданного размера, DISK[R] — диск заданного размера, RING[R] – кольцо заданного размера.

    Результат морфологической обработки зависит как от размера и конфигурации исходного изображения, так и от структурного примитива.
    Размер структурного элемента как правило равен 3*3, 4*4 или 5*5 пикселов. Это обусловлено главной идеей морфологической обработки, в процессе которой отыскиваются характерные детали изображения. Искомая деталь описывается примитивом, и в результате морфологической обработки можно подчеркнуть или удалить такие детали на всём изображении.
    Одно из основных преимуществ морфологической обработки –её простота: как на входе, так и на выходе процедуры обработки мы получаем бинаризованное изображение. Другие методы, как правило, из исходного изображения сначала получают полутоновое, которое затем приводится к бинарному с помощью пороговой функции.

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


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

    Прежде, чем переходить к операциям морфологии, есть смысл рассмотреть теоретико-множественные операции, лежащие в основе математической морфологии.
    Объединение двух множеств A и B, которое обозначается C=A∪B, есть по определению множество всех элементов, принадлежащих либо множеству A, либо множеству B, либо обоим множествам одновременно. Аналогично, пересечение двух множеств A и B, которое обозначается C=A∩B, есть по определению множество всех элементов, принадлежащих одновременно обоим множествам A и B. Дополнение множества A есть множество элементов, не содержащихся в A: Ac={w|w∉A}. Разность двух множеств A и B обозначается A\B и определяется следующим образом: A\B={w│w∈A,w∉B}=A∩Bc. Это множество состоит из элементов A, которые не входят в множество B.
    Рассмотрим все вышеперечисленные операции на конкретном примере.

    Перенос

    Операция переноса Xt множества пикселов X на вектор t задаётся в виде Xt={x+t|x∈X}. Следовательно, перенос множества единичных пикселов на бинарном изображении сдвигает все пикселы множества на заданное расстояние. Вектор переноса t может задаваться в виде упорядоченной пары (∆r,∆c), где ∆r – компонент вектора переноса в направлении строк, а ∆c — компонент вектора переноса в направлении столбцов изображения.

    Наращивание, эрозия, замыкание, размыкание

    Следующие операции мы рассмотрим на конкретном примере. Пусть у нас есть следующее бинарное изображение и структурный элемент:

    Наращивание

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

    Эрозия

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

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

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

    Замыкание

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

    Условное наращивание


    Одним из типичных применений бинарной морфологии является выделение на бинарном изображении компонент, у которых форма и размеры удовлетворяют заданным ограничениям. Во многих подобных задачах возможно построение структурного элемента, который после применения к бинарному изображению удаляет не удовлетворяющие ограничениям компоненты и оставляет несколько единичных пикселов, соответствующих удовлетворяющим ограничениям компонентам. Но для последующей обработки могут потребоваться компоненты целиком, а не только их фрагменты, оставшиеся после эрозии. Для решения этой проблемы была введена операция условного наращивания.
    Множество полученное в результате эрозии циклически наращивается структурным элементом S, и на каждом шаге результат уменьшается до подмножества пикселов, которые имеют единичные значения на исходном изображении B. Операция условного наращивания пояснена на рисунке ниже. На этом рисунке бинарное изображение B было подвергнуто эрозии элементом V для выделения компонент, содержащих вертикальные фрагменты высотой 3 пиксела. На полученном изображении C есть две таких компоненты. Чтобы выделить эти компоненты целиком, изображение C условно наращивается элементом D относительно исходного изображения B.

    Выделение границ


    Морфологические операции можно также использовать для выделения границ бинарного объекта. Это операция очень важна, потому что граница является полным, и в то же время весьма компактным описанием объекта.
    Легко заметить, что граничные точки имеют как минимум один фоновый пиксел в своей окрестности. Таким образом, применив оператор эрозии с структурным элементом, содержащим все возможные соседние элементы, мы удалим все граничные точки… Тогда граница получится с помощью операции разности множеств между исходным изображением и изображением, полученным в результате эрозии.


    Таким образом, мы с вами рассмотрели основные операции математической морфологии, и несколько способов их применения. Надеюсь, этот аппарат пригодится вам в дальнейшей деятельности.
    • +61
    • 37.2k
    • 5
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 5

      0
      Я что-то подобное изобретал при выделении новых объектов в видеоряде. Прочто интуитивно применял всякие подобные пиксельные преобразования и получил вполне приемлимый результат.
        +6
        Так в этом и смысл. Прелесть мат. морфологии в том, что она довольно хорошо формализована и очень эффективна в качестве аппаратной реализации.
          0
          В паре с другими интересными мат. алгоритмами очень хороший инструмент. Да и для OCR это самое то ;)
        0
          0
          Спасибо. Исправлюсь.

        Only users with full accounts can post comments. Log in, please.