Главная
Новости рынка
Рубрикатор



Архив новостей -->



 



   

О. Горбенко

Мatlab для DSP: графический интерфейс пользователя для обработки и анализа изображений


Статья посвящена использованию средств MATLAB для обработки двумерных сигналов. В качестве предметной области рассматриваются цифровые изображения, их обработка и анализ. Важным достоинством системы MATLAB являются программы, реализованные в виде графических интерфейсов пользователя (GUI) и обеспечивающие решение разнообразных предметно ориентированных задач в простой, наглядной и удобной форме. К ним относятся, например, программы WAVEMENU (GUI, позволяющий проводить анализ одномерных и двумерных сигналов с помощью wavelet-преобразования) [1], SPTOOL (GUI для фильтрации и спектрального анализа одномерных сигналов) [2] и другие. MATLAB также предоставляет широкий набор инструментальных средств обработки изображений, однако готового GUI в этой области в существующих версиях MATLAB нет.

В данной статье представлен GUI по обработке изображений. Соответствующая программа, названная ImageGUI, разработана для анализа цифровых изображений, полученных методами сканирующей зондовой микроскопии [3]. Она может быть использована для обработки и анализа разнообразных цифровых изображений, независимо от метода, которым они были получены.

Задачи, решаемые ImageGUI

Общая постановка таких задач — это анализ и улучшение качества изображений. Подобные задачи решаются с использованием разнообразных процедур (функций), в том числе реализующих различные методы обработки сигналов: линейной и нелинейной фильтрации, препарирования изображений, спектрального анализа (вычисление и исследование двумерного Фурье-спектра пространственных частот изображения) и другие. Для увеличения информативности представления результатов применяются средства демонстрации поперечных сечений изображения и объёмных изображений поверхностей с использованием подсветки.

Функции программы ImageGUI

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

Программа поддерживает стандартные графические форматы (jpg, bmp, tif, pcx и другие) реализует параллельную работу с различными изображениями, многократной обработки одного изображения, а также его фрагментов.

Головной модуль ImageGUI содержит описание главного графического окна, вид которого представлен на рис. 1. Все выполняемые функции являются отдельными модулями. Далее описываются элементы, расположенные на панели главного окна, и соответствующие им процедуры.



Ввод изображения

Программа поддерживает ввод изображений, имеющих стандартный графический формат (кнопка “Input Image”). (Для того, чтобы получить полную информацию о допустимых форматах, надо ввести команду ‘help imread’ в командном окне MATLAB.) Допустим ввод цветных изображений, однако при обработке они конвертируются в чёрно-белые.

Для того, чтобы начать работу, необходимо нажать кнопку “Input Image” и выбрать файл в появившемся после этого стандартном окне диалога ввода. Введённый графический файл отображается в отдельном окне, и становятся доступными операциии его обработки, описанные ниже.

Удаление горизонтальных полос

Эта функция выполняется при нажатии кнопки ‘Delete Horizontal Lines’ главного окна программы (рис. 1). Горизонтальные полосы различной яркости являются типичным видом зашумления изображений, в частности, полученных с помощью сканирующих приборов, так как при переходе на новую строку могут измениться некоторые условия во внешней среде или в экспериментальной установке. Для устранения полос реализуется алгоритм, осуществляющий приведение средних значений яркостей точек изображения по каждой строке к одному среднему значению. Пусть Q — среднее значение всех точек двумерной матрицы изображения Аij, а Pi — среднее значение точек в i-той строке. Тогда значение в каждой точке преобразуется в соответствии с формулой:

                                                a‘ij = aij + (QPi) .


В описываемой версии программы этот алгоритм работает с полным массивом исходных данных.

Выделение фрагмента изображения

Фрагмент может быть выделен из изображения, находящегося в любом из открытых графических окон. Для выделения фрагмента необходимо нажать кнопку ‘Fragment’ (рис. 1), если эта функция выполняется в первый раз после запуска программы ‘ImageGUI’, а затем в окошко ’Window’, расположенное под этой кнопкой, ввести номер графического окна с изображением, после чего нажать ‘Enter’. Фрагмент изображения определяется путём указания мышью концевых точек любой его диагонали. Выделенный фрагмент выводится в новом графическом окне, а на исходном изображении прорисовывается рамка, соответствующая его границам. При повторных вызовах этой функции достаточно вводить номер окна с изображением.

Блок ‘Operations’ — выполнение функций коррекции гистограммы изображения и стандартной фильтрации

Этот блок находится в правом нижнем углу главного окна программы (рис. 1) и содержит выпадающий список, содержащий функции, которые могут быть использованы; окно редактирования ‘Window’, в котором необходимо указать номер графического окна, содержащего изображение и кнопку ‘Apply Operation’. При нажатии этой кнопки выбранная из списка функция применяется к изображению, находящемуся в графическом окне с указанным номером, и результат отображается в новом графическом окне.

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

Результаты выполнения некоторых функций этого блока продемонстрированы на примере изображения срезов мозга крысы (рис. 2). Изображение получено с помощью цифровой видеокамеры. С помощью операции ‘boundary interpolation’ можно удалять локальные дефекты. На рис. 2 удаляемый дефект заключен в многоугольник, построенный в процессе исполнения ‘boundary interpolation’ интерактивно, с помощью мыши. Результат выполнения этой операции (появляющийся после нажатия правой кнопки мыши) приведён на рис. 3.





Гистограмма изображения, показанного на рис. 2, построена при выполнении операции ‘histogr’ и приведена на рис. 4.



Построение профиля поверхности

Эта функция программы реализуется с помощью элементов, расположенных в средней части главного окна ‘ImageGUI’: кнопка ‘Profile’ и элементы, находящиеся ниже её (рис. 1). Перед прорисовкой профиля необходимо занести его номер в окошко ‘Profile Num.’. Этот номер назначается пользователем, он будет помещён на изображении рядом с линией сечения, а также написан на графике сечения в месте, указанном нажатием левой кнопки мыши. Цвет линии сечения, которая наносится на изображение, регулируется с помощью переключателя white/black.

Для построения профиля изображения необходимо нажать кнопку ‘Profile’, затем ввести номер графического окна с этим изображением в окошко ‘Window’, расположенное под этой кнопкой ‘Profile’ и нажать ‘Enter’. После этого на выбранном изображении с помощью левой кнопки мыши указываются концевые точки, через которые проводится сечение. При последующих вызовах этой функции нажимать кнопку ‘Profile’ не обязательно, достаточно указать номер окна с изображением, а затем нажать ‘Enter’. Работа этой функции продемонстрирована на примере рис. 3. На этом рисунке чёрной линией показано выбранное место сечения, а на рис. 5 приведено само сечение.



Трёхмерное представление изображения с подсветкой

Для представления выбранного изображения в аксонометрии, с затенением и подсветкой, необходимо нажать кнопку ‘Lighting’ (рис. 1), затем ввести номер графического окна с выбранным изображением и нажать ‘Enter’. При повторных обращениях к этой функции нажимать кнопку ‘Lighting’ нет необходимости. Построение трёхмерной поверхности и её интерактивное вращение осуществляется при помощи набора средств, предоставляемых системой MATLAB. Пример такого изображения приведён на рис. 6.



Удаление неровностей фона

Операция удаления неровности фона (тренда) на изображении выполняется при нажатии кнопки ‘Surface Delete’. Перед этим в окошки, расположенные под этой кнопкой, необходимо внести номер графического окна с изображением, подлежащим обработке, а также размер квадратной матрицы T(x,y) (в пикселях), являющейся операндом операции свертки (см. ниже). Удаление тренда в данной программе осуществляется путём фильтрации с использованием свёртки. Сначала вычисляется матрица сглаженной поверхности U(x,y) методом скользящего среднего, а затем этот результат вычитается из исходного изображения:

                                    U(x,y) = A(x,y)**T(x,y) ,

                                    A(x,y) = A(x,y) – U(x,y) ,



где ** — операция свёртки;A(x,y) — исходное изображение, T(x,y) — единичная матрица, с размером, соответствующим размеру наибольших элементов на изображении, которые необходимо сохранить.

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

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







Двумерные преобразования Фурье и линейная фильтрация изображений.

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

Вычисление двумерного дискретного преобразования Фурье служит основой для построения фильтров в области пространственных частот и осуществления линейной фильтрации (кнопка ‘Fourier Spectrum’). Построение двумерного спектра для изображения, номер которого предварительно введён в окошко ‘Window’, расположенное над кнопкой ‘Fourier Spectrum’, производится после нажатия этой кнопки.

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

Улучшение качества изображения либо его препарирование с целью выделения характерных признаков осуществляется путём линейной фильтрации. Построение частотной характеристики фильтра происходит в интерактивном режиме. Выбирается определённый вид фильтра: полосовой, нижних или верхних частот, режекторный, многополосный либо фильтр-корректор, подчеркивающий мелкие детали изображения [4]. Фильтры, используемые в GUI, рассчитываются методом окон [5].

Идеализированная частотная характеристика фильтра задаётся в виде двумерной маски в координатах пространственных частот. При этом программа построена таким образом, что в основной части апертуры задаются единицы, а в рабочей части записываются числа, большие либо меньшие единицы, в зависимости от характера фильтра. Значение амплитудно-частотной характеристики (на панели GUI обозначено как AFR — Amplitude Frequency Response должно быть введено до проведения сечения. Возможно использование различных значений АЧХ для различных полос. Выделенная область частот определяется нажатием левой кнопки мыши сначала в центре полосы, а затем на одной из её границ. На изображении двумерного спектра осуществляется контрольная прорисовка характеристик синтезируемого фильтра. Трёхмерное представление фильтра выводится в отдельном графическом окне. Фильтрация выполняется после нажатия кнопки ‘Execute Filtration’.

На рис. 8 показаны различные этапы фильтрации изображения кристаллической решётки GaAs, полученного в сканирующем туннельном микроскопе. На рис. 8а приведено исходное, сильно зашумлённое изображение, на рис. 8б — модуль его двумерного Фурье-преобразования. На этом же рисунке линиями показаны сечения спектра, на которых отмечены области частот, для которых было осуществлено построение многополосного фильтра. Одно из сечений спектра показано на рис. 8в. Трёхмерное изображение построенного фильтра — на рис. 8г. Результат фильтрации (вычисляется при нажатии кнопки ‘Execute Filtration’) приведён на рис. 8д.











Как пользоваться программой ImageGUI

Для свободного получения программы ‘ImageGUI’ необходимо скопировать одноименную папку с сайта www.dsp.sut.ru или www.dsp-sut.spb.ru на жёсткий диск компьютера. В этой папке кроме программы имеются три изображения, которые можно использовать в качестве тестовых и для обучения. Головной модуль программы (ImageGUI) может быть вызван как скрипт-файл (пункт Run Script) меню File главного окна MATLAB либо командой ‘ImageGUI’, набранной в командном окне, если каталог ‘…/ImageGUI’ является текущим, либо если путь к нему занесён в список путей стандартного поиска.

Пример обработки изображения в программе ImageGUI

Рассмотрим пример обработки сильно зашумлённого изображения, полученного в сканирующем силовом микроскопе.

Первой должна быть выполнена операция ввода изображения (кнопка ‘Input Image’). Исходное изображение показанно на рис. 9а. Далее оно было подвергнуто обработке, проведённой за несколько шагов:



1. Удалены горизонтальные полосы (‘Delete Horizontal Lines’), результат показан на рис. 9б;


2. Удалены неровности фона (‘Surface Delete’) с параметром ‘Matr. size’, равным 22 квадратным пикселям. В результате получено изображение рис. 9в.


3. Построен двумерный Фурье-спектр изображения рис. 9в (кнопка ‘Fourier Spectrum’). Его модуль приведён на рис. 9г.


4. Для удаления узких горизонтальных линий, заметных на изображении рис. 9в, использован режекторный фильтр, подавляющий частоты в узком секторе. Границы полос идеализированного фильтра показаны линиями на рис. 9г. Для построения этого фильтра необходимо нажать кнопку ‘Horiz’, а после этого — ’Execute Filtration’. Трёхмерное представление АЧХ полученного фильтра приведено на рис. 9д, а результат обратного преобразования — на рис. 9е. Горизонтальные линии на изображении практически исчезли.





Заключение

В статье представлена и описана графическая интерактивная программа обработки изображений ImageGUI, созданная в среде MATLAB. Эта программа содержит различные функции обработки и анализа изображений, включая линейную и нелинейную фильтрацию, анализ двумерного спектра пространственных частот изображения, коррекцию гистограммы, исследование локальных свойств изображения путём выделения фрагментов и проведения сечений, трёхмерное представление с подсветкой. Программа может быть полезна как в учебных, так и в исследовательских задачах. Автор выражает искреннюю признательнось А.А. Ланнэ и В.В. Анохину за полезные дискуссии и помощь в подготовке материалов. Автор также считает своим долгом поблагодарить фирму Soft Line, предоставившую для этой работы лицензионную версию программы MATLAB 5.3.

Литература:
1. В 2-х частях // Сhip-News. 2000. № 6. С 2–8. Сhip-News. 2000. № 7. С. 16–19.
2. Андреев И.В., Ланнэ А.А. MATLAB для DSP: SPTool — инструмент для расчета цифровых фильтров и спектрального анализа сигналов // Цифровая обработка сигналов. 2000. № 2. С. 6–13. 3. Бинниг Г., Рорер Г. Сканирующая туннельная микроскопия — от рождения к юности. Нобелевская лекция // Успехи физических наук. том 154. вып. 2. 1988. С. 261–277. 4. Дуда Р., Харт П. Распознавание образов и анализ сцен. Москва: Мир, 1976. 511 с. 5. Даджион Д., Мерсеро Р. Цифровая обработка многомерных сигналов. Москва: Мир, 1988. 488 с.






Реклама на сайте
тел.: +7 (495) 514 4110. e-mail:admin@eust.ru
1998-2014 ООО Рынок микроэлектроники