Использование волнового алгоритма для построения скелета растрового изображения

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

показателя степени отклонения от исходного сигнала. На рис. 5 представлены результаты исследования этой зависимости.

8000

7000

« 6000 ю

§ 5000

Я

<и

Л 4000 о о

а 3000

v

S

« 2000 Сц

1000

LSB

Метод фазового кодирования

1500 2000 3000 5000 7000 Размер контейнера, байт

0

Рисунок 5 - График зависимости размера встраиваемого сообщения от размера контейнера

Исследования показывают, что, если объем встраиваемых данных при использовании метода LSB составляет не менее 10% от объема файла контейнера, то при первичном анализе можно обнаружить факт встраивания. При наиболее оптимальных параметрах (менее 10% от объема файла контейнера) искажения исходного аудифайла незначительны и вероятность обнаружения факта встраивания ниже. Метод фазового кодирования в меньшей степени зависит от объема встраиваемых данных и, в отличие от метода наименее значащих битов, является более стойким к попыткам обнаружения факта встраивания информации в контейнер.

Выводы и результаты

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

Определены оптимальный объем данных, встраиваемых в аудиофайл, и степень отклонения от исходного файла для решения задачи эффективного встраивания.

Произведен сравнительный анализ результатов решения задачи встраивания при использовании двух различных методов.

ЛИТЕРАТУРА

1. Генне О. В. Основные положения стеганографии // журнал "Защита информации. Конфидент", №3, 2000.

2. Нечта И. В. Стеганография в файлах формата Portable Executable // Вестник СибГУТИ. 2009. № 1. С. 85 - 89.

3. Freeware program of steganography bmp, wav, voc. [Электронный ресурс] http://www.hein z-repp.onlinehome.de/Hide4PGP.htm.

УДК 004.932.2

Мишенев В.С., Кудрина М.А.

ФГАОУ ВО «Самарский национальный исследовательский университет имени академика С.П. Королева», Самара, Россия

ИСПОЛЬЗОВАНИЕ ВОЛНОВОГО АЛГОРИТМА ДЛЯ ПОСТРОЕНИЯ СКЕЛЕТА РАСТРОВОГО ИЗОБРАЖЕНИЯ

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

Ключевые слова:

скелетизация растровых изображений, волновой алгоритм, алгоритм утончения линий, векторизация бинарных изображений

Введение

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

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

На непрерывной плоскости скелетом называется множество точек, равноудаленных от границ изображений. Этапу построения скелета фигуры как правило предшествуют несколько вспомогательных этапов. Это предварительная обработка (устранение мелких шумов и пр.) и бинаризация изображения. Бинаризацией называется процесс преобразо-

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

Чтобы получился скелет, все линии которого имеют толщину в один пиксель, необходимо максимально утончить линии изображении. Для этого существуют различные алгоритмы скелетизации: алгоритм Зонга-Суня (Zhang-Suen) [2], шаблонный метод [3], волновой алгоритм [4] и другие алгоритмы. В данной статье рассмотрим волновой алгоритм.

Основная часть

Условно волновой алгоритм можно поделить на несколько этапов:

построение графа («запуск» волны, отслеживание пройденного пути, мест разделения, затухания);

оптимизация полученного графа (аппроксимация прямыми, окружностями, удаление лишних узлов графа).

Первый этап - получение нагруженного графа, у которого нагрузка вершин - пары координат х,у соответствующих узловых точек изображения [5]. За узловые точки будем принимать точки соединения линий в растровом изображении. Под изображением линии (отрезком) на растре будем понимать такое множество черных точек растра, что можно провести отрезок прямой такой, что по обе стороны от этого отрезка будет лежать примерно равное количество точек, и расстояния от отрезка до ближайших крайних точек изображения будут отличаться не более, чем на наперед заданную величину. Такой граф, по сути, будет являться скелетом изображения.

Построение графа осуществляется путем отслеживания пути прохождения сферической волны по изображению. Однако распространение такой волны имеет ограничение, связанное с дискретностью пространства. Так для 8-ми связного растра распространение волны идет в виде квадрата, а для 4-х - в виде ромба [6]. Связность характеризует количество соседних пикселей растра.

Генерация сферической волны достигается попеременным применением 4-х и 8-и связного распространения. Сначала применяется 4-х связное распространение, затем 8-ми связное для каждого пикселя из предыдущей 4-х связной генерации подобно принципу Гюйгенса-Френеля в волновой теории, согласно которому каждый элемент волнового фронта можно рассматривать как центр вторичного возмущения, порождающего вторичные сферические волны. Тогда распространение волны идёт в виде восьмиугольника. Для такой волны характерны некоторые особенности:

не более чем через 2N шагов распространение волны приобретает устойчивый характер вне зависимости от начальной точки распространения волны, где N - ширина линии в пикселях;

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

Построение скелета фигуры производится путем отслеживания центров каждой генерации волны. Каждая генерация волны заключена между своими крайними пикселями с координатами (х1, у.) и (х2, У2). Под крайними пикселями волны понимаются те пиксели генерации, у которых не более одного соседнего пикселя из этой генерации в восьмисвяз-ном соседстве. За точку скелета можно брать середину отрезка, соединяющего крайние точки генерации волны, и точка будет определяться как ((Х1+ Х2)/2; (у1+ у2)/2) (см. рис. 1,а). Также за точку скелета можно принимать центр масс генерации волны (относительно которого количество

пикселей в генерации слева и справа одинаково), но точки скелета при повороте волны будут лежать ближе к фронту волны (см. рис. 1,6).

а) за точку скелета принимается середина отрезка, соединяющего крайние точки генерации

б) за точку скелета принимается центральный пиксель генерации волны, относительно которого число пикселей слева и справа равно

Рисунок 1 - Отслеживание точек, образующих скелет

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

Сам момент увеличения ширины волны определяется путем сравнения "ширины" очередной генерации волны и ее среднего значения за N предыдущих генераций (N задается заранее). Отрезок (А, В) - генерация волны до расширения. Момент разделения волны происходит, когда возрастает количество крайних точек одной генерации волны. Количество дочерних волн будет равно количеству крайних точек в генерации, деленному пополам, за исключением дочерних волн, состоящих из 1 пикселя. В частном случае, приведенном на рис. 2, после разделения генерации волны на 2 полуволны, получаем еще 2 пары крайних точек (С, О) и (Е, ¥). Точки (А, В), (С, О) и (Е, ¥) будут образовывать шестиугольник. Положение точки соединения отрезков будет определяться как центр масс многоугольника АВСОЕГ [5].

Рисунок

пределение точки

динения

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

Рисунок 3 - Одиночная волна, выделена темным цветом

После разделения фронта волны могут возникать одиночные волны из-за дискретности изображения (см. рис. 3). Середину такой волны в граф заносить не нужно.

Итак, на первом этапе в скелетный граф изображения заносятся средние точки для каждой генерации волны.

Для хранения генераций предыдущих волн целесообразнее использовать очередь. Так как, например, при использовании стека возникают «всплески» волн, связанные с дискретностью изображения, имеющего некоторые помехи (см. рис. 3,а). Использование очереди дает более равномерное распространение волны (см. рис. 3,б), которое имитирует «естественную» волну.

б) генерации волн хранятся в очереди Рисунок 4 - Огибание волной помех на изображении

Алгоритм первого этапа имеет следующий вид: создается пустая очередь;

в неё кладется генерация волны, представленная 4-х связными соседями начальной точки;

пока очередь не пуста, из нее достается генерация волны;

к ней применяется сначала 8-ми связное распространение, затем 4-х связное. Тем самым получается новая генерация, которая отправляется в очередь, а середина новой волны заносится в скелетный граф;

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

при встрече с другой волной происходит затухание волны. В данном случае граф замыкается.

На первом этапе получается скелет, состоящий из середин всех генераций волн за исключением мест соединения. Следующий этап скелетизации -оптимизация полученного скелета.

В разработанной программе оптимизация графа проводиться методом последовательных приближений и методом Деминга (ортогональной регрессии) [7].

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

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

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

Кроме этого, может использоваться оптимизация точек соединения отрезков изображения. На рис. 5 приведен пример оптимизации точки соединения при часто встречаемом искажении. Такое искажение детектируется следующим образом: через последние два узла графа, предшествующих точке соединения, проводится прямая. Другие последние две точки, предшествующие этому же самому месту разделения, но лежащими на другой «ветке» графа, должны отклоняются от неё с максимальным отклонением Ед^ (выбирается соизмеримой с толщиной линии), а точка соединения - превышать это отклонение.

Например, берутся последние две точки А1 и А, предшествующие точке В - точке разветвления графа, через них проводится прямая А1А, отклонение других двух точек С и С1, от этой прямой соизмеримо с толщиной линии фигуры, кроме того, сама точка соединения превышается это отклонение. Оптимизация заключается в поиске пары отрезков среди А1А, С1С, В1В, наиболее лучше аппроксимирующих прямую [5]. В данном случае эти отрезки - А1А, С1С, тогда искомая точка В будет находиться на пересечении этой прямой и оставшегося третьего отрезка В1В. Новой точкой соединения вместо В будет В, а точки А, В, С удаляются из графа.

Рисунок 5 - Пример оптимизации точки соединения

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

а) скелетизация «тонкой» буквы

Рисунок 6

Пример скелетизации толщины

букв разной

Результаты и выводы

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

Преимущества волнового алгоритма для скеле-тизации изображений:

скелет строится на исходном изображении, при этом исходное изображение можно восстановить;

память требуется только для хранения графа скелета, очереди генерации;

количество операций 0(п), где п - площадь скелетизируемого объекта. Используются простые машинно-арифметические операции на множестве действительных чисел;

легко распараллеливается при использовании нескольких начальных точек генерации волны;

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

Недостатки:

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

в начальный момент волна приобретает устойчивый характер не сразу, но и не более, чем через 2N шагов распространения;

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

б) скелетизация «толстой» буквы

ЛИТЕРАТУРА

1. Коробков С.М. Нейронная сеть и обработка информации // Труды межд. симп. Надежность и качество. 2010. Том 1, стр. 257-258. Изд.: ПГУ (Пенза) ISSN: 2220-6418

2. Zhang, T. Y. A fast parallel algorithm for thinning digital patterns [Text] / T. Y. Zhang, C. Y. Suen // Comm. of ACM. - 1984. - Vol. 27, Issue 3. - P. 236-239. doi:10.1145/357 994.358023

3. Pfalz J.L., Rosenfeld A. Computer Representation of Planar Regions by their Skeletons. Communications of the Association for Computing Machinery, 1967, vol. 10, no. 2, pp. 119-125. DOI: 10.1145/363067.363120

4. Местецкий Л.М. Непрерывная морфология бинарных изображений: фигуры, скелеты, циркуляры. / Местецкий Л.М - М: ФИЗМАЛИТ, 2009.

5. Применение волнового алгоритма для нахождения скелета растрового изображения. // [Электронный ресурс]. Режим доступа: http://ocrai.narod.ru

6. Шикин Е.В., Боресков А.В. Компьютерная графика. Динамика, реалистические изображения / Шикин Е.В., Боресков А.В - М.: ДИАЛОГ-МИФИ, 1995. - 288 с.

7. Line fitting, или методы аппроксимации набора// [Электронный ресурс]. Режим доступа: http://www.ict.edu.ru/ft/0 023 93/num2lfit.pdf

8. Гудков В.Ю., Клюев Д.А. Скелетизация бинарных изображений и выделение особых точек для распознавания отпечатков пальцев // Вестник ЮУрГУ. Серия: Компьютерные технологии, управление, радиоэлектроника. 2015. №3. URL: http://cyberleninka.ru/article/nZskeletizatsiya-binarnyh-izobrazheniy-i-vydelenie-osobyh-tochek-dlya-raspoznavaniya-otpechatkov-paltsev (дата обращения: 24.04.2017).