Г.А. Дмитриев, А.В. Дмитриев
МЕТОДЫ КОРРЕКТИРОВКИ ИЗОБРАЖЕНИЯ ПРИ АВТОМАТИЗИРОВАННОЙ ДИАГНОСТИКЕ ЗАБОЛЕВАНИЙ
Дерматоглифический анализ является одним из методов, применяющихся в работе с пациентами медико-генетических консультаций. Основными задачами этих учреждений является диагностика наследственных заболеваний и прогноз потомства. Дерматоглифический анализ будет наиболее объективным при условии семейного изучения дерматоглифических отпечатков, т. е., как минимум, у пробанда и его родителей.
Суммируя современные знания о возможностях дерматоглифического анализа можно привести наиболее значимые области медицины, где этот анализ наиболее эффективен: летальные формы патологии плода неуточненной этиологии, синдро-мальные формы задержки внутриутробного развития, соматическая асимметрия, хромосомный мозаицизм, синдромы "протяженного гена", тератогенные воздействия и многие другие.
Можно выделить три основные этапа дерматоглифического анализа: 1) сканирование отпечатков пальцев и ладонных поверхностей; 2) анализ и обработка изображений; 3) последующее принятие решений по оценкам, полученным в ходе анализ полученного отпечатка.
Компьютерная обработка изображений является мощным инструментом позволяющим автоматизировать этот процесс. Основная задача заключается в локализации и идентификации фрагментов в изображении с целью определения основных характеристик, таких как тип узора, гребневой счет, угол ЛТБ. Задача осложняется тем, что искомый фрагмент может отличаться от образца расположением, яркостью, контрастностью. Его геометрия может быть искажена, например, вытянута по какому либо направлению. Изображение может быть искажено из-за фоновых эффектов вызванных неравномерным нанесением окрашивающего вещества, неравномерной освещенностью объекта, структурой поверхности бумаги, шумами сканирующей аппаратуры и т.п. Можно выделить следующие типы дефектов изображения, характерные для отпечатков пальцев и ладонных поверхностей: шумы различного происхождения, линейные дефекты (царапины), смазанность изображения, неравномерное угасание изображения. Каждый из выделенных типов дефекта требует применения специальных методов улучшения изображения, наиболее соответствующих решаемой задаче. При наличии шумов различного происхождения используются методы фильтрации изображений. Множество возможных подходов в этом случае на две большие категории [1]: методы обработки в пространственной области (пространственные методы) и методы обработки в частотной области (частотные методы). Пространственные методы основаны на прямом манипулировании элементами изображения. Процессы пространственной обработки описываются уравнением
Я(х, у) = Т[Кх, у)],
где Дх, у) - входное изображение, g(x, у) - обработанное изображение, Т - оператор над К определенный в некоторой окрестности точки (х, у). Зашумленное изображение Дх, у) можно представить в виде суммы двух компонент:
Кх, у) = g(x, у) + И(х, у), где И(х, у) - аддитивный шум. В этом случае g(x, у) выступает как некоторое «идеальное» изображение. Для обработки зашумленного исходного изображения можно использовать методы улучшения на основе логико-арифметических операций, такие как вычитание и усреднение изображений. Ниже приводится пример корректировки исходного изображения основанный на методе вычитания изображе-
ний. Разность двух изображений Дх, у) и И(х, у) получается вычислением разностей между парами значений всех соответствующих пикселей изображения f и И.
Для успешного использования техники улучшения изображений и построения необходимо манипулировать с элементами исходного изображения, полученного на этапе 1. Рассмотрим механизм преобразования растрового изображения в математический объект - матрицу на основе системы МЛТЬЛБ. Изображение рассматривается как двумерная функция Дх, у), где х и у - координаты в пространстве, а значение f в любой точке (х, у) определяет интенсивность или яркость изображения в этой точке. Растровая картинка формируется элементами изображения - пикселями. Пусть Ъ - множество целых положительных чисел и (х, у)е Ъ2 Тогда
значения интенсивности в каждой точке х = 1, у = ], ау = Дх = 1, у = ]) образуют матрицу:
A =
a
0,0
4,0
a
0,1
a
1,1
am-1,0 am-1,1
0,n-1
4,n-1
m-1,n-1
где n - число столбцов, a m - число строк. Поскольку уровни интенсивности изображения квантуются, a^ принимает значения из множества Z. Число градаций интенсивности L выбирается равным целочисленной степени двойки:
L = 2k.
Данные об интенсивности изображения обычно хранятся в двух форматах -truecolor и indexed. Эти данные составляют матрицу, которая в MATLAB [2] представляет свойство CData графического объекта Image. При использовании модели RGB в формате truecolor матрица свойства CData имеет размерность mxnx3 и каждому элементу изображения с координатами (i,j) в матрице цветности соответствует тройка вещественных числовых значений в диапазоне от 0 до 1, которая определяет интенсивность составляющих компонент. В форматах графических файлов соответствующие RGB - компоненты хранятся как 8 - и 16 - битовые целые числа.
Чаще для хранения отпечатков используется формат indexed. В этом случае матрица свойства CData имеет размерность mxn и каждый ее элемент представляет целое число в диапазоне от 0 до 255. Это число является индексом, указывающим на цветовую палитру RGB (colormap). Цветовая палитра это матрица размерности 256x3, состоящая из чисел в диапазоне от 0 до 1. Первый столбец соответствует компоненте Red, второй - компоненте Green и третий - компоненте Blue модели RGB. Индекс, хранящийся в матрице свойства CData, указывает на строку матрицы цветовой палитры. Значению индекса 0 соответствует тройка чисел (0,0; 0,0; 0,0), что соответствует черному цвету. Значению индекса 255 соответствует тройка чисел (1,0; 1,0; 1,0), что соответствует белому цвету.
На рис. 1 приведен пример отпечатка пальца в формате GIF, который имеет свойства Width - 300, Height - 500, ColorType - ‘indexed’, BitDepth - 8.
Для того чтобы иметь возможность проводить обработку этого изображения в системе MATLAB, необходимо представить его как графический объект типа Image. С помощью комады >> [X,map,Alpha]=imread('palec','gif) функция imread считывает индексированное графическое изображение из указанного файла в массив индексов X и ассоциированную палитру цветов map. Графический объект Image, представленный на рис. 2, созданный с помощью команд >> image(); >> color-map(map), имеет свойства: CData = [(500 by 300) uint8 array], CDataMapping = di-
rect. Таким образом, графический объект Image представляет собой изображение типа indexed, состоящее из 500x300 пикселей. Интенсивность каждого пикселя описана в массиве Х[1:500,1:300].
Рис. 1. Отпечаток пальца в формате Рис. 2. Отпечаток пальца как объект
GIF Image
На рис. 3 показан увеличенный фрагмент этого изображения. Размер этого фрагмента определяется пикселями с номерами от 234 до 250 по вертикали и от 121 до 131 по горизонтали.
Рис. 3. Увеличенный фрагмент объекта Image
Числовое отображение графического объекта Image, представленного на рис. 3 содержится в массиве X. Команда >> Х(234:250,121:131) позволяет получить это числовое отображение в виде матрицы индексов, определяющих интенсивность пикселя с координатами (i, j). Эта матрица представлена на рис. 4.
Визуальный анализ матрицы показывает, что не все пиксели имеют интенсивность 0 или 255. Значения отличные от 0 и 255 определяются дефектами изображения и образуют так называемый «шум».
Можно откорректировать это изображение следующим образом:
>> B=X([234:250],[121:131])
>> C(1:17,1:11)=128 >> V=double(B)
>> E=double(C)
>> Z=V-E
>> 7его_1осайоп=1М(Ъ<0);
>> опе_1оса1юп=АМ(Ъ>0);
>> Ъ(7его_1оса1юп)=0;
>> Ъ(опе_1осайоп)=255;
>> Ъ=шШ8(Ъ)
0 0 3 0 3 0 255 255 253 252 1
0 5 255 245 3 2 255 250 255 255 255
0 2 251 255 251 1 0 0 249 255 253
3 0 0 255 255 252 0 5 0 251 255
0 9 0 0 250 255 255 0 2 2 248
255 0 3 3 5 254 250 250 10 2 254
0 255 3 0 0 0 255 255 248 255 1
2 255 249 5 1 1 252 255 255 255 2
0 255 255 255 0 0 0 255 255 251 0
255 0 244 255 252 5 0 3 255 252 252
254 11 0 254 255 250 7 0 0 255 255
255 0 0 0 255 255 0 12 0 252 252
250 7 2 0 0 255 255 0 5 1 255
250 251 3 0 6 251 255 255 0 3 250
255 255 252 0 4 0 250 255 5 0 8
0 255 252 1 1 0 0 255 0 0 0
0 0 251 255 3 0 0 255 255 0 0
Рис.4. Числовое отображение объекта
Полученная таким образом матрица Ъ содержит откорректированное изображения, в котором все пиксели имеют значение 0 или 255 (см. рис. 5). Результат корректировки можно представить в виде графического изображения:
>> image(Ъ);
>> со1огтар(тар)
Результат выполнения команд представлен на рис. 6.
Для обработки линейных дефектов используются методы интерполяции значений яркостей дефектных точек. Для локализации этих дефектов используются методы морфологического анализа. Морфологический анализ изображения также используется для выделения и обработки фрагментов для получения необходимых характеристик, таких как тип узора, гребневой счет, угол ЛТБ. С этой целью используются некоторые фундаментальные отношения между элементами изображения, такие как смежность, связанность, области, контуры, границы, меры расстояния. Эти отношения определяются через координаты отдельных элементов изображения. В частности, евклидово расстояние (метрика Ь2) между элементами р и q с координатами (х,у) и (8,1) соответственно определяется следующим образом:
Ое(р,Я) = [(х - 8)2 + (у -1)2]0,5.
При такой метрике пиксели, находящиеся на расстоянии не более г от заданной точки(х,у), образуют круг радиуса г с центром в этой точке.
Расстояние Б8 (метрика Ьм) между элементами р и q определяется следующим образом:
С8(р^) = тах(х - 4|у - ф.
0 0 0 0 0 0 255 255 255 255 0
0 0 255 255 0 0 255 255 255 255 255
0 0 255 255 255 0 0 0 255 255 255
0 0 0 255 255 255 0 0 0 255 255
0 0 0 0 255 255 255 0 0 0 255
255 0 0 0 0 255 255 255 0 0 255
0 255 0 0 0 0 255 255 255 255 0
0 255 255 0 0 0 255 255 255 255 0
0 255 255 255 0 0 0 255 255 255 0
255 0 255 255 255 0 0 0 255 255 255
255 0 0 255 255 255 0 0 0 255 255
255 0 0 0 255 255 0 0 0 255 255
255 0 0 0 0 255 255 0 0 0 255
255 255 0 0 0 255 255 255 0 0 255
255 255 255 0 0 0 255 255 0 0 0
0 255 255 0 0 0 0 255 0 0 0
0 0 255 255 0 0 0 255 255 0 0
Рис. 5. Результат корректировки Рис. 6. Графический объект
Image(Z)
В этом случае элементы, находящиеся на расстоянии D8 меньшем или равным r от заданной точки(х,у), образуют квадрат с центром в этой точке. Элементы с расстоянием D8<2 от центральной точки образуют следующие замкнутые линии равных расстояний:
2 2 2 2 2
2 1112 2 10 12
2 1112 2 2 2 2 2
Эта метрика широко используется для проведения морфологического анализа.
Для устранения смазанности и неравномерного угасания изображения используются методы адаптивного повышения контраста изображений. В частности, может использоваться процедура нерезкого маскирования [1], которая выражается формулой
fs(x, у) = f(x, у) + f*(x, у), где fs(x, у) - обозначает изображение с повышенной резкостью, полученное нерезким маскированием, а f (x, у) - расфокусированная копия исходного изображения f(x, у). Обобщением нерезкого маскирования является фильтрация с подъемом высоких частот. Процедура фильтрации с подъемом высоких частот определяется выражением
fs(x, у) = Kf(x, у) + f*(x, у), где K > 1 - коэффициент фильтрации.
В заключение отметим, что система MATLAB может служить эффективным инструментом проектирования и разработки приложений для анализа и обработки изображений а также реализации методов автоматизированной диагностики заболеваний. Выбор интегрированной системы MATLAB в качестве инструментального средства обусловлен наличием в ней языка программирования высокого уровня и модулей расширения, таких как Database Toolbox, Б^ту Logic Toolbox, Neural Network Toolbox, Optimization Toolbox. Кроме того, матричный процессор, реали-
зующий механизм векторной обработки данных, обеспечивает высокую точность и скорость вычислений. Совместное использование этих инструментов, а также средств разработки графических приложений и визуализации расчетных данных, создания независимо исполняемых приложений позволяет создавать эффективные приложения с минимальными затратами времени.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Р. Гонсалес, Р.Вудс. Цифровая обработка изображений. -М.: Техносфера, 2005. - 1072 с.
2. Кетков Ю.Л., Кетков А.Ю., Шульц М.М. MATLAB 6.x.: Программирование численных
методов. - СПб: БХВ-Петербург, 2004. - 672 с.
Т.В. Истомина, Е.В. Истомина
ФОРМИРОВАНИЕ ВХОДНЫХ ТЕСТОВЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ
ЭКС В ПАКЕТЕ MATLAB
Целесообразность и перспективность применения пакета Simulink системы Matlab для разработки и исследования средств анализа ЭКС сейчас ни у кого не вызывает сомнений. Проблема состоит в том, чтобы технически грамотно сформировать входные тестовые последовательности ЭКС и помех.
Авторами была проведена работа по поиску и анализу баз данных ЭКС, доступных на данный момент, в результате было решено использовать сертифицированную базу данных Mit-Bin ресурса PhysioNet, созданного для широкой аудитории ученых, математиков, инженеров, клиницистов и студентов, изучающих биомедицинские науки и связанные с ними технологии.
Записи в банке данных PhisioBank сгруппированы в отдельные каталоги и снабжены соответствующей системой поиска и визуализации прямо в окне веббраузера. Общий объем архива в настоящее время уже превысил 40 Гигабайт.
MIT-BIH An^^mia Database содержит ЭКС, структурированные в отдельные тома по патологии, норме, присутствию шума, месту происхождения. Среди них имеется и каталог тестовых сигналов - ANSI/AAMI EC 13 Test Waveforms, поддерживаемый национальным стандартом США American National Standard для тестирования устройств, измеряющих частоту сердечного ритма.
Записи ЭКС содержат 2 и более каналов отведений и представлены в формате 212. Это особый формат, перекодирующий два 12-битных сигнала отведений в три 8-битных с помощью логической матрицы размером 3 X 8, используя смещение бита по признаку. Каждый отсчет представляется как амплитуда из дополнительного кода длиной 12 битов. Первый отсчет получен от 12 наименьших значащих битов первой пары байт (сохраняет сначала самый младший байт). Второй отсчет образован из 4 оставшихся битов первой пары байт (которые являются 4-мя старшими разрядами 12-битного отсчета) и следующего байта (который содержит оставшиеся 8 бит 2-го отсчета). Техника повторяется для каждой следующей пары отсчетов.
Так как данные хранятся в формате, не поддерживаемом пакетом Matlab, необходимо было найти решение по импорту данных. Robert Tratnig и Klaus Rheinberger создали файл rddata.m - программу для Matlab/Octave, которая читает 1- или 2- канальные записи PhysioBank, сохраненные в формате 212, и выводит их на экран вместе с текстовыми комментариями как график Matlab. Программа была отредактирована нами для определения входных файлов. Отметим, что большинство записей PhysioBank сохранены в формате 212, но программа формирует предупреждение, если выбранный ЭКС записан в другом формате или если файл со-