О. Горбенко Мatlab для DSP. Графический интерфейс пользователя для обработки и анализа изображенийСтатья посвящена использованию средств MATLAB для обработки двумерных сигналов. В качестве предметной области рассматриваются цифровые изображения, их обработка и анализ. Важным достоинством системы MATLAB являются программы, реализованные в виде графических интерфейсов пользователя (GUI) и обеспечивающие решение разнообразных предметно ориентированных задач в простой, наглядной и удобной форме. К ним относятся, например, программы WAVEMENU (GUI, позволяющий проводить анализ одномерных и двумерных сигналов с помощью wavelet-преобразования) [1], SPTOOL (GUI для фильтрации и спектрального анализа одномерных сигналов) [2] и другие. MATLAB также предоставляет широкий набор инструментальных средств обработки изображений, однако готового GUI в этой области в существующих версиях MATLAB нет.В данной статье представлен GUI по обработке изображений. Соответствующая программа, названная ImageGUI, разработана для анализа цифровых изображений, полученных методами сканирующей зондовой микроскопии [3]. Она может быть использована для обработки и анализа разнообразных цифровых изображений, независимо от метода, которым они были получены. Задачи, решаемые ImageGUIОбщая постановка таких задач - это анализ и улучшение качества изображений. Подобные задачи решаются с использованием разнообразных процедур (функций), в том числе реализующих различные методы обработки сигналов: линейной и нелинейной фильтрации, препарирования изображений, спектрального анализа (вычисление и исследование двумерного Фурье-спектра пространственных частот изображения) и другие. Для увеличения информативности представления результатов применяются средства демонстрации поперечных сечений изображения и объ╦мных изображений поверхностей с использованием подсветки. Функции программы ImageGUIПредставленная в данной публикации программа ImageGUI использует многие стандартные функции MATLAB, входящие в состав Toolbox обработки сигналов (Signal Processing) и обработки изображений (Image Processing). Программа поддерживает стандартные графические форматы (jpg, bmp, tif, pcx и другие), реализует параллельную работу с различными изображениями, многократную обработку одного изображения, а также его фрагментов. Головной модуль ImageGUI содержит описание главного графического окна, вид которого представлен на рис. 1. Все выполняемые функции являются отдельными модулями. Далее описываются элементы, расположенные на панели главного окна, и соответствующие им процедуры. Рисунок 1. Вид главного окна программы обработки изображений ImageGUI Ввод изображенияПрограмма поддерживает ввод изображений, имеющих стандартный графический формат (кнопка "Input Image"). (Для того, чтобы получить полную информацию о допустимых форматах, надо ввести команду "help imread" в командном окне MATLAB.) Допустим ввод цветных изображений, однако при обработке они конвертируются в ч╦рно-белые. Для того, чтобы начать работу, необходимо нажать кнопку "Input Image" и выбрать файл в появившемся после этого стандартном окне диалога ввода. Введ╦нный графический файл отображается в отдельном окне, и становятся доступными операциии его обработки, описанные ниже. Удаление горизонтальных полосЭта функция выполняется при нажатии кнопки "Delete Horizontal Lines" главного окна программы (рис. 1). Горизонтальные полосы различной яркости являются типичным видом зашумления изображений, в частности, полученных с помощью сканирующих приборов, так как при переходе на новую строку могут измениться некоторые условия во внешней среде или в экспериментальной установке. Для устранения полос реализуется алгоритм, осуществляющий приведение средних значений яркостей точек изображения по каждой строке к одному среднему значению. Пусть Q - среднее значение всех точек двумерной матрицы изображения Аij, а Pi - среднее значение точек в i-той строке. Тогда значение в каждой точке преобразуется в соответствии с формулой: a▒ij = aij + (Q √ Pi). В описываемой версии программы этот алгоритм работает с полным массивом исходных данных. Выделение фрагмента изображенияФрагмент может быть выделен из изображения, находящегося в любом из открытых графических окон. Для выделения фрагмента необходимо нажать кнопку "Fragment" (рис. 1), если эта функция выполняется в первый раз после запуска программы "ImageGUI", а затем в окошко "Window", расположенное под этой кнопкой, ввести номер графического окна с изображением, после чего нажать "Enter". Фрагмент изображения определяется пут╦м указания мышью концевых точек любой его диагонали. Выделенный фрагмент выводится в новом графическом окне, а на исходном изображении прорисовывается рамка, соответствующая его границам. При повторных вызовах этой функции достаточно вводить номер окна с изображением. Блок "Operations" - выполнение функций коррекции гистограммы изображения и стандартной фильтрацииЭтот блок находится в правом нижнем углу главного окна программы (рис. 1) и содержит выпадающий список, содержащий функции, которые могут быть использованы, и окно редактирования "Window", в котором необходимо указать номер графического окна, содержащего изображение и кнопку "Apply Operation". При нажатии этой кнопки выбранная из списка функция применяется к изображению, находящемуся в графическом окне с указанным номером, и результат отображается в новом графическом окне. В этом блоке программы реализованы функции построения гистограммы изображения, увеличения и уменьшения контраста и яркости изображения, сглаживания, уничтожения локальных дефектов, медианной фильтрации и винеровской фильтрации. Результаты выполнения некоторых функций этого блока продемонстрированы на примере изображения срезов мозга крысы (рис. 2). Изображение получено с помощью цифровой видеокамеры. С помощью операции "boundary interpolation" можно удалять локальные дефекты. На рис. 2 удаляемый дефект заключен в многоугольник, построенный в процессе исполнения "boundary interpolation" интерактивно, с помощью мыши. Результат выполнения этой операции (появляющийся после нажатия правой кнопки мыши) привед╦н на рис. 3. Рисунок 2. Изображение срезов мозга крысы. В многоугольник заключен локальный дефект Гистограмма изображения, показанного на рис. 2, построена при выполнении операции "histogr" и приведена на рис. 4. Рисунок 4. Гистограмма изображения, привед╦нного на рис. 2 Построение профиля поверхностиЭта функция программы реализуется с помощью элементов, расположенных в средней части главного окна "ImageGUI": кнопка "Profile" и элементы, находящиеся ниже е╦ (рис. 1). Перед прорисовкой профиля необходимо занести его номер в окошко "Profile Num.". Этот номер назначается пользователем, он будет помещ╦н на изображении рядом с линией сечения, а также написан на графике сечения в месте, указанном нажатием левой кнопки мыши. Цвет линии сечения, которая наносится на изображение, регулируется с помощью переключателя white/black. Для построения профиля изображения необходимо нажать кнопку "Profile", затем ввести номер графического окна с этим изображением в окошко "Window", расположенное под этой кнопкой и нажать "Enter". После этого на выбранном изображении с помощью левой кнопки мыши указываются концевые точки, через которые проводится сечение. При последующих вызовах этой функции нажимать кнопку "Profile" не обязательно, достаточно указать номер окна с изображением, а затем нажать "Enter". Работа этой функции продемонстрирована на примере рис. 3. На этом рисунке ч╦рной линией показано выбранное место сечения, а на рис. 5 приведено само сечение. Рисунок 5. График поперечного сечения изображения, показанного на рис. 3 Тр╦хмерное представление изображения с подсветкойДля представления выбранного изображения в аксонометрии, с затенением и подсветкой, необходимо нажать кнопку "Lighting" (рис. 1), затем ввести номер графического окна с выбранным изображением и нажать "Enter". При повторных обращениях к этой функции нажимать кнопку "Lighting" нет необходимости. Построение тр╦хмерной поверхности и е╦ интерактивное вращение осуществляются при помощи набора средств, предоставляемых системой MATLAB. Пример такого изображения привед╦н на рис. 6. Рисунок 6. Пример тр╦хмерного изображения поверхности Удаление неровностей фонаОперация удаления неровности фона (тренда) на изображении выполняется при нажатии кнопки "Surface Delete". Перед этим в окошки, расположенные под этой кнопкой, необходимо внести номер графического окна с изображением, подлежащим обработке, а также размер квадратной матрицы T(x,y) (в пикселах), являющейся операндом операции св╦ртки (см. ниже). Удаление тренда в данной программе осуществляется пут╦м фильтрации с использованием св╦ртки. Сначала вычисляется матрица сглаженной поверхности U(x,y) методом скользящего среднего, а затем этот результат вычитается из исходного изображения: U(x,y) = A(x,y)**T(x,y), где ** - операция св╦ртки; A(x,y) - исходное изображение; T(x,y) - единичная матрица с размером, соответствующим размеру наибольших элементов на изображении, которые необходимо сохранить. При выполнении операции св╦ртки для предотвращения искажений на краях изображения осуществляется его ч╦тное продолжение. Выполнение этой операции продемонстрировано на рис. 7. Исходное изображение поверхности, полученное с помощью сканирующего силового микроскопа, приведено на рис. 7а, а результат удаления неровности фона с помощью описанного выше метода - на рис. 7б. Двумерные преобразования Фурье и линейная фильтрация зображенийЭлементы, с помощью которых в программе осуществляются функции, связанные с преобразованием Фурье, расположены под надписью "FOURIER FILTRATION" (рис. 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д. Рисунок 8а. Изображение поверхности GaAs, полученное в сканирующем туннельном микроскопе Рисунок 8б. Модуль двумерного преобразования Фурье, показаны сечения и области выделенных частот Рисунок 8в. График сечения Фурье-образа изображения Рисунок 8г. Тр╦хмерное изображение построенного фильтра Рисунок 8д. Результат фильтрации Как пользоваться программой ImageGUIДля свободного получения программы "ImageGUI" необходимо скопировать одноим╦нную папку с сайта www.dsp.sut.ru или www.dsp-sut.spb.ru на ж╦сткий диск компьютера. В этой папке, кроме программы, имеются три изображения, которые можно использовать в качестве тестовых и для обучения. Головной модуль программы (ImageGUI) может быть вызван как скрипт-файл (пункт Run Script) меню File главного окна MATLAB либо командой "ImageGUI", набранной в командном окне, если каталог "┘/ImageGUI" является текущим либо если путь к нему занес╦н в список путей стандартного поиска. Пример обработки изображения в программе ImageGUIРассмотрим пример обработки сильно зашумл╦нного изображения, полученного в сканирующем силовом микроскопе. Первой должна быть выполнена операция ввода изображения (кнопка "Input Image"). Исходное изображение показанно на рис. 9а. Далее оно было подвергнуто обработке, провед╦нной за несколько шагов:
ЗаключениеВ статье представлена и описана графическая интерактивная программа обработки изображений ImageGUI, созданная в среде MATLAB. Эта программа содержит различные функции обработки и анализа изображений, включая линейную и нелинейную фильтрации, анализ двумерного спектра пространственных частот изображения, коррекцию гистограммы, исследование локальных свойств изображения пут╦м выделения фрагментов и проведения сечений, тр╦хмерное представление с подсветкой. Программа может быть полезна как в учебных, так и в исследовательских задачах. Автор выражает искреннюю признательнось А.А. Ланнэ и В.В. Анохину за полезные дискуссии и помощь в подготовке материалов. Автор также считает своим долгом поблагодарить фирму Soft Line, предоставившую для этой работы лицензионную версию программы MATLAB 5.3. Литература
|
Ваш комментарий к статье | ||||