вторник, 20 сентября 2011 г.

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


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


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

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



А если так не делать?
Но если углубится, в нашем анализе, и предположить еще более глубокое дробление изображения, а именно «расшить» его на бинарные слои.
в место одной матрицы значений 0..255 рассмотрим 8 матриц, того же размера, но со значениями 0..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

Автор: Bdragon76

Комментариев нет:

Отправить комментарий