Кудрина М.А., Кудрин К.А., Загуменнов Д.А., Платонов А.П. ПРОГРАММНЫЙ КОМПЛЕКС ВИЗУАЛИЗАЦИИ АЛГОРИТМОВ ОБРАБОТКИ ИЗОБРАЖЕНИЙ
В статье описана структура программного комплекса визуализации алгоритмов обработки изображений, предназначенного для использования в учебном процессе в рамках курса "Компьютерная графика" студентами специальности 23 0102 - "Автоматизированные системы обработки информации и управления".
На кафедре информационных систем и технологий Самарского государственного аэрокосмического университета разработан программный комплекс визуализации алгоритмов обработки изображений.
Один из разделов курса "Компьютерная графика", преподаваемый студентам специальности "Автоматизированные системы обработки информации и управления", посвящен изучению методов обработки изображений. Курс дисциплины предполагает теоретическую подачу материала, поэтому был разработан программный комплекс визуализации алгоритмов обработки изображений, который дает возможность наглядно ознакомиться с результатами применения различных методов обработки изображений.
В настоящее время программный комплекс включает реализацию следующих алгоритмов обработки изображений:
преобразование цветного изображения в оттенки серого; методы препарирования:
яркостный срез (с сохранением фона и без сохранения); пороговая обработка;
контрастное масштабирование (с представлением «рабочего» интервала яркостей на неоднородном и однородном фоне: черном, белом, сером; пилообразное контрастное масштабирование); негатив;
линейная масочная фильтрация: сглаживающие маски;
маски, увеличивающие контрастность; придание изображению рельефности;
фильтрация с использованием пользовательского фильтра; медианная фильтрация;
градиентный метод выделения контуров; утончение линий; алгоритм Зонга-Суена; эвристический алгоритм;
преобразование Хафа для векторизации изображения; линейное контрастирование.
Программа позволяет увидеть, как визуально изменяется изображение при заданных параметрах, в зависимости от выбранного способа преобразования. При разработке алгоритмов программного комплекса использовались источники [1, 2, 3].
Опишем подробнее методы обработки изображений, используемые в программном комплексе. Преобразование в оттенки серого
Данный метод заключается в присвоении каждому пикселю изображения значения его яркости, которая вычисляется по формуле У = 0,299 • К +0,587 • О +0,114 • В , где У - значение яркости текущего пикселя; Я, О, В - соответственно красная, зеленая и синяя составляющие цвета пикселя.
Линейное контрастирование
Контрастирование осуществляется при помощи линейного поэлементного преобразования:
£ = а • / + Ь .
Параметры этого преобразования а, Ь определяются, исходя из требуемого изменения динамического диапазона. Если реальный динамический диапазон яркостей [ £т±п , ^
нужно получить шкалу [дт±п , Ятак], то:
• ./шах £шах • /шт
а в результате обработки
./max /mi
Ъ =
.gm
/max /mі
/ max J min J max J min
Пример линейного контрастирования изображения приведен на рис. Методы препарирования
1
Рис. 1. Линейное контрастирование
Это отдельная группа методов, заключающихся в приведении изображения к такому виду, который далек от естественного, но удобен для визуальной интерпретации и дальнейшего машинного анализа. Перечислим основные преобразования препарирования изображений.
1) Пороговая обработка
Пороговая обработка полутонового изображения заключается в разделении всех его элементов на два класса по признаку яркости:
Графики и пример пороговой обработки приведены на рис. 2.
2) Яркостный срез
& ё 8
Рис. 2. Пример пороговой обработки
Является обобщением пороговой обработки. Данный способ позволяет выделить на изображении элементы, относящиеся к определенному диапазону яркости. Применение метода проиллюстрировано на рис.
3.
Рис. 3. Преобразование яркостного среза
3) Контрастное масштабирование
Заключается в том, чтобы растянуть "рабочий" интервал яркостей на весь диапазон допустимых значений, а оставшимся элементам присвоить значение яркости фона. Графики преобразования и примеры обработки представлены на рис. 4.
Пилообразное контрастное масштабирование иллюстрирует рис. 5. Как правило, если изображение состоит из нескольких крупных областей с медленно меняющимися значениями яркости, то такое преобразование почти не разрушает целостности его восприятия и в то же время резко увеличивает контрастность плохо различимых мелких деталей.
1 Рабочий интервал ярмости
М*агх*я граница Р—
Г >
Верхи** граница |202
ідем: шиапь кой і иммииа^моА
Рис. 4. Контрастное масштабирование
4) Негатив
Инвертирует цвета изображения (см. рис. 6). Для того чтобы преобразовать все цвета в обратные, требуется присвоить каждой составляющей цвета пикселя ее обратное значение. Для ЯОБ-модели это преобразование выглядит следующим образом:
Рис. 6. Негатив
= 255-Я , ^ = 255-О , Вн = 255-В .
Линейная масочная фильтрация
Линейная масочная фильтрация подразумевает, что над яркостью каждого пикселя с(к, у) производится следующее преобразование:
N N
с '(х, у) = А + В • £ £ с(х + ¡,у + У) • М^,У) ,
/=-N]=-N
где Ы-количество "слоев", входящих в окружение пиксела (обычно, N=1), А и В - некие константы, М - некая матрица ("маска") размерности (2-Ы+1)х(2-Ы+1). Следует иметь в виду, что при попиксель-ном сканировании изображения в рассмотрение должны включаться исходные, а не преобразованные значения яркостей пикселов.
В зависимости от элементов маски и коэффициентов А и В можно добиться разных эффектов (рис.
7).
Программа хранит некоторые стандартные маски, а также дает возможность пользователю самому за-
а) исходное изображение; б) размытие; в) контраст; г) рельеф Рис. 7. Линейная масочная фильтрация
дать коэффициенты преобразования.
Медианный фильтр
Представляет собой пример нелинейной масочной фильтрации. При медианной фильтрации все пикселы, входящие в окружение текущего (включая и его самого), сортируются по яркости, затем текущий пиксел заменяется центральным пикселом в отсортированной группе. Медианная фильтрация уменьшает резкость и позволяет избавиться от мелких деталей, например, от точечных помех.
Для наглядной демонстрации работы фильтра в программу включена опция добавления шума, которая случайным образом раскидывает по изображению заданное количество одиночных черных или белых точек.
Пример работы фильтра представлен на рис. 8.
Рис. 8. Медианная фильтрация
Утончение линий
Алгоритмы утончения линий, они же алгоритмы скелетизации, позволяют превратить монохромное изображение в штриховое, тем самым решив, например, задачу распознавания текста.
Эвристический алгоритм
Для каждого пикселя с координатами (к, у) вводится локальная плотность изображения 11 11
(I (х, у) = £ £ с(х + 2, у + ]) - с(х, у) и плотность локальных плотностей О(х, у) = £ £ и (х + 2, у + У) - и (х, у) .
I=-1У=-1 2=-1У=-1
Пиксель остается на изображении, если для него выполняются условия:
Ы > ¥1, О > ¥ 2 ,
где П и Е2 подбираются экспериментально для каждого конкретного изображения.
Алгоритм Зонга-Суэна
Является итерационным и предусматривает несколько последовательных циклов, на каждом из кото" Р9 Р2 Р3
рых удаляются пиксели наружного слоя фигур. Вводится матрица
Р8 Р! Р4 Р7 Р6 Р5
, элемент Р1 которой
совмещается с текущим обрабатываемым пикселем. Каждый элемент Pi равен единице, если соответствующий пиксель белый, и нулю, если черный.
Каждая итерация состоит из двух этапов. Пиксель удаляется с изображения, если выполняются четыре условия:
На первом этапе:
а) 2 < В(Р1)< 6 ,
б) А (Р1) = 1 ,
в) P2xP4xP6=0,
г) P4xP6xP8 = 0.
На втором этапе:
а) 2 < В(Р1)< 6 ,
б) А (Р1) = 1 ,
в) P2xP4xP8 = 0,
г) P2xP6xP8=0,
где A(P1) - число переходов от 0 к 1 в последовательности P2, P2;
9
в (Р1) = £ Р - количество единиц вокруг P1.
Упрощенная схема алгоритма представлена на рис. 9.
(=2
Рис. 9
Итерации продолжаются до тех пор, пока очередная пара этапов не обнаружит ни одной подлежащей удалению точки. Для проверки данного факта вводится булевская переменная Deleted, которая сбрасывается в начале каждой итерации, но устанавливается, как только удаляется хотя бы один пиксель.
За движение по изображению от верхней левой и до нижней правой точки отвечают два цикла: цикл 1 идет по строкам, а цикл 2 - по столбцам. В переменной w записана ширина, а в переменной h -высота картинки.
Выделение контуров
Контуром изображения называется совокупность его пикселей, в окрестности которых наблюдается скачкообразное изменение функции яркости. Выделение контуров заключается в построении изображения границ объектов и очертаний однородных областей и состоит из двух этапов: подчеркивания контуров, при котором на изображении выделяются перепады яркости, и пороговой обработки, которая переводит изображение в монохромное. В программе реализован градиентный метод выделения контуров.
Пример выделения контуров представлен на рис. 10.
Рис. 10. Выделение контуров
Преобразование Хафа
Преобразование Хафа позволяет провести векторизацию растрового изображения, т.е. перейти от представления линии в виде набора точек к ее уравнению. В данной работе реализована векторизация прямых. Суть ее заключается в следующем.
Каждой прямой в исходной декартовой системе координат XOY ставятся в соответствие два параметра : длина радиус-вектора р (кратчайшее расстояние от начала координат до прямой) и угол наклона 0 этого вектора к оси X (см. рис. 11).
Рис. 11. Переход к полярной системе координат Через одну точку (x, y) в декартовой СК может проходить бесконечное множество прямых, а значит, в пространстве Хафа (р, 9) всем им соответствует некоторая кривая р(в) = х • cos в+у • sin# (см. рис. 12).
Рис. 12. Точке в декартовой СК соответствует синусода в пространстве (р, 0)
В свою очередь, каждой точке пространства (р, 0) соответствует набор точек в декартовом про-
странстве, образующий прямую. Таким образом, каждой точке (р0, 00) пространства (р, 0) можно по-
(x, y), лежащих на прямой
Р0, ^0)
ставить в соответствие счетчик, соответствующий количеству точек x•cos0o+y•sin0o=po •
Вследствие дискретности растрового представления исходного изображения, каждой прямой в координатах (x, у) будет соответствовать не одна точка, а сгущение точек в координатах (р,0).
Таким образом, последовательно просматривая все точки исходного изображения, получаем некоторый набор точек в координатах (р,0). После этого достаточно выбрать в пространстве Хафа самые «жирные пятна» и поставить им в соответствие параметры прямых.
На практике обычно задают некоторые шаги (Д0, Др) и в соответствии с ними разбивают простран-
ство Хафа на области, из которых выбирают ту, куда попадет больше всего точек (см. рис. 13).
к = -
Уравнение cos#
sin#
b =
прямой
р
sin#
y = kx + b
Рис. 13. Пространство Хафа легко восстановить по полученным параметрам с помощью формул
Использование программного комплекса визуализации алгоритмов обработки изображений в учебном процессе позволяет более наглядно продемонстрировать работу различных методов обработки изображений, тем самым повышая интерес студентов к дисциплине "Компьютерная графика".
Литература
1. Методы компьютерной обработки изображений / Под. ред. В.А. Сойфера. - М.: Физматлит, 2001. - 784 с.
2. И.С.Грузман и др. Цифровая обработка изображений в информационных системах. Учебное пособие. - Новосибирск, 2000. - 166 с.
3. Э.Прэтт. Цифровая обработка изображений. В 2-х книгах - М.: Мир, 1982.
4. Анна Дегтярева, Владимир Вежневец. Преобразование Хафа (Hough transform). Компьютерная графика и мультимедиа. Выпуск №1(1)/2003. http://cgm.computergraphics.ru/content/view/36