Точное выделение контуров на изображениях

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

Классика

Почти все известные алгоритмы выделения контуров подходя к изображению как матрице чисел с значениями 0..255, целыми числами в пределах одного машинного байта (16 бит вариант рассмотрим посже). Потом, делается свертка с матрицей коэфициентов.

А если так не делать?


А если так не делать?

Но если углубится, в нашем анализе, и предположить еще более глубокое дробление изображения, а именно «расшить» его на бинарные слои.
в место одной матрицы значений 0..255 рассмотрим 8 матриц, того же размера, но со значениями 0..1

А теперь применим к полученным бинарным матрицам свертку с…

image

Без коэфициентов. Просто выполним функцию булевской алгебры. Ведь входные данные — это бинарные значения. [1]

Разоблачение

Откуда взялась эта булевская функция?
  • скажем, что контур найден в некотором пикселе бинарного изображения, если значение яркости этого писеля отличается от значения яркости хотя бы одного из окружающих его пикселей в окне n x n. Случай изолированного пикселя исключается из рассмотрения требованием: значение рассматриваемового пикселя должно совпадать с значением хотя бы одного из окружающих пикселей;
  • контур по восходящей (от 0 к 1, где 1 это значение анализируемого пикселя), контур по нисходящей (от 1 к 0, где 0 значение анализируемого пикселя) не совпадают;
  • из второго постулата получаем, что есть три варианта выделения контуров а) отдельные контуры по восходящей; б) отдельные контуры по нисходящей; в) объединенное выделение контров по восходящей и нисходящей изменениям яркости.

наглядные результаты:
image
  • исходное (элетронный микроскоп)
  • контура по нашей формуле
  • поднятый контраст по нашему результату


для сравнения:
image
  • контура по линейному оператору Собелю
  • контура по материалам [2]
  • контура по материалам [3]


и еще один «живой» пример
image

варианты
image
«по восходящей»

image
«по нисходящей»

[1] Aizenberg I. and Butakoff C., “Image Processing Using Cellular Neural Networks Based on Multi-Valued and Universal Binary Neurons”, Journal of VLSI Signal Processing Systems for Signal, Image and Video Technology, Vol. 32, 2002, pp. 169-188.
[2] X.Z.Sun, and A.N.Venetsanopoulos “Adaptive Schemes for Noise Filtering and Edge Detection by us
Statistics”, IEEE Transactions on Circuits and Systems, vol. CAS-35, 1988, pp. 57-69
[3] R.M.Haralick “Statistics and Structural Approach to Texture”, Proceedings IEEE, vol. 67, No 5, 1979, pp. 786-804

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 14

    +3
    А вот этот алгоритм в отличие от прошлого вполне себе новенький и мне нравиться.
    Но я правильно понимаю, что это алгоритм выделяет только контуры по одному уровню яркости? То есть если контур проходит по различным уровням подложки — алгоритм полетит к чертям?
    +1
    в результате получаем 8-бит изображение.
    которое то же можна бинаризировать и «схлопнуть» получить бинарный трэк.
    Можна, селективно, использовать только самые значащие битовые плоскости.

    Надо, наверное, добавить примеров
      –1
      ошибочка
      наглядные результати:
        –1
        и «посже» — правильно, конечно, позже
        0
        Напоминает подход, когда делается эрозия и дилатация для полутонового изображения. Отличие в масках. Мне кажется или вы очень торопились когда писали? В любом случае, спасибо, интересно!
          0
          ;)
          не столько торопился, сколько, не серьезно к этому подошел

          тем более это мааахонький кусочек того чем я занималась наша команда на протяжении 4 лет
            0
            А что у вас за команда? Дополнили бы статью вашу списком публикаций вашей команды, мне эта тематика очень интересна. А нового — днем с огнем не найдешь.
            Почему не серьезный подход? — Хабра — это вроде не блокнот!
              +1
              внес правку в статью.
              первая ссылка это одна из наших публикаций.
              а продукт получился коммерческий.
              0
              И картинки в масштабе побольше можно (снимок не обязательно конечно) — хочется разглядеть контура на качество.
            0
            Спасибо! Кратко, четко и интересно
              0
              Извините, а исходники есть?
                0
                ;)
                Есть.
                –3
                А можно их как то выложить? для контакта мои майл jenya1991@inbox.ru

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