Точное выделение контуров на изображениях
Хочу описать, один из нелинейных алгоритмов выделения контуров на изображениях.
Классика
Почти все известные алгоритмы выделения контуров подходя к изображению как матрице чисел с значениями 0..255, целыми числами в пределах одного машинного байта (16 бит вариант рассмотрим посже). Потом, делается свертка с матрицей коэфициентов.
А если так не делать?
А если так не делать?
Но если углубится, в нашем анализе, и предположить еще более глубокое дробление изображения, а именно «расшить» его на бинарные слои.
в место одной матрицы значений 0..255 рассмотрим 8 матриц, того же размера, но со значениями 0..1
А теперь применим к полученным бинарным матрицам свертку с…
Без коэфициентов. Просто выполним функцию булевской алгебры. Ведь входные данные — это бинарные значения. [1]
Разоблачение
Откуда взялась эта булевская функция?
- скажем, что контур найден в некотором пикселе бинарного изображения, если значение яркости этого писеля отличается от значения яркости хотя бы одного из окружающих его пикселей в окне n x n. Случай изолированного пикселя исключается из рассмотрения требованием: значение рассматриваемового пикселя должно совпадать с значением хотя бы одного из окружающих пикселей;
- контур по восходящей (от 0 к 1, где 1 это значение анализируемого пикселя), контур по нисходящей (от 1 к 0, где 0 значение анализируемого пикселя) не совпадают;
- из второго постулата получаем, что есть три варианта выделения контуров а) отдельные контуры по восходящей; б) отдельные контуры по нисходящей; в) объединенное выделение контров по восходящей и нисходящей изменениям яркости.
наглядные результаты:
- исходное (элетронный микроскоп)
- контура по нашей формуле
- поднятый контраст по нашему результату
для сравнения:
- контура по линейному оператору Собелю
- контура по материалам [2]
- контура по материалам [3]
и еще один «живой» пример
варианты
«по восходящей»
«по нисходящей»
[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