- •281 И.М.Журавель "Краткий курс теории обработки изображений"
- •Типы изображений
- •Бинарные изображения: геометрические характеристики
- •Бинарные изображения
- •Ориентация
- •Кодирование с переменной длиной
- •Сложные объекты
- •Локальные вычисления и итеративная модификация
- •Системы получения рентгенографических изображений
- •Получение изображений с помощью радиоизотопов
- •Ультразвуковая диагностика
- •Использование эффекта ядерного магнитного резонанса (ямр) для получения изображений
- •Пример обработки рентгеновских биомедицинских изображений с использованием системы matlab
- •1) Методы растяжения; 2) гистограммные методы; 3) ранговые методы; 4) разностные методы; 5) методы преобразования локальных контрастов.
- •Приложение. Программа, реализующая оценивания визуального качества изображений по одному из изложенных выше методов (формулы (2)-(6))
- •Обзор методов цифровой обработки изображений
- •Моделирование разностных методов в среде matlab
- •Обзор методов цифровой обработки изображений: Методы растяжения
- •Обзор методов цифровой обработки изображений: Методы гистограммных преобразований
- •Обзор методов цифровой обработки изображений: Метод преобразования локальных контрастов
- •Адаптивное повышение контрастности изображений
- •Использование функции протяженности гистограммы
- •Энтропия изображения
- •Использование среднеквадратического отклонения значений яркостей элементов окрестности в методах контрастирования изображений
- •Нелинейное растяжение локальных контрастов
- •Анализ некоторых характеристик локальных окрестностей
- •Статистическое определение локального контраста
- •Фильтрация изображений: Алгоритмы сглаживания изображений
- •Сглаживание для аддитивной модели
- •Сглаживание для модели импульсных помех
- •Увеличение детальности изображений
- •Обнаружение деталей и их границ
- •Применения ранговых алгоритмов
- •Фильтрация изображений: Обобщенная линейная фильтрация
- •Деконволюция
- •Предварительная обработка изображений
- •1. Бейтс р., Мак-Доннелл м. Восстановление и реконструкция изображений: Пер. С англ.- м.: Мир, 1989. - 336. 2. Bracewell r.N. The Fourier Transform and its Applications. - n.Y.: McGraw-Hill, 1978.
- •Расширение границ изображений. Сверхразрешение.
- •Реконструкция размытых изображений в matlab
- •Границы изображений: Края и их обнаружение
- •Дифференциальные операторы
- •Дискретные аппроксимации
- •Выделение и локализация края
- •Классификация по ближайшему соседу
- •Классификация по ближайшей центроиде
- •Автоматическое формирование кластера
- •Кодирование и сжатие изображений
- •Применение в сейсмологии
- •Применение в биологии Электрокардиография
- •Применение на транспорте Распознавание автомобилей
- •Распознавание самолетов
- •Imshow(he), title('h&e изображение');
- •Шаг 2: Вычисление выборки цветов в цветовом пространстве l*a*b* для каждой локальной области.
- •Imshow(sample_regions(:, :, 2)), title('Пример красной области');
- •Шаг 3: Классификация каждого пикселя с использованием принципа ближайшей окрестности.
- •Шаг 4: Отображение результатов классификации по ближайшей окрестности.
- •Шаг 5: Отображение значений 'a*' и 'b*' отмеченных цветов.
- •Шаг 4: Улучшение цветных изображений
- •Изображение 2: Применение линейных конформных преобразований.
- •Изображение 4: Применение проекционных преобразований.
- •Изображение 5: Применение полиномиальных преобразований.
- •Шаг 2: Исследование отображения изображений с помощью линий сетки, окружностей и т.П.
- •Шаг 3: Достижение специальных эффектов на результирующем изображении с помощь использования метода частичных масок.
- •Шаг 4: Повторение эффекта на разных изображениях
- •Шаг 1: Первичное преобразование изображений.
- •Шаг 4: Реализация методов с параметрами 'circular' и 'symmetric'.
- •Image Acquisition Toolbox, хранятся в виде mat-файла pendulum.Mat.
- •Гранулометрия
- •Параллельные лучи - реконструкция фантома головы на основании проекционных данных.
- •Веерные лучи - вычисление синтезированных проекций.
- •Xlabel('Веерный поворот угла (в градусах) ')
- •Веерные лучи - реконструкция фантома головы на основании проекционных данных.
- •Сегментация методом управляемого водораздела
- •Шаг 3: Маркировка объектов переднего плана.
- •Шаг 4: Вычисление маркеров фона.
- •Реконструкция изображений с использованием регуляризационного фильтра
- •Восстановление изображений с использованием метода Лаки-Ричардсона
- •Шаг 5: Обработка шумовой составляющей.
- •Шаг 8: Моделирование взвешенного массива (массив weight).
- •Шаг 9: Моделирование функции протяженности точки psf.
- •Некоторые подходы к улучшению визуального качества изображений с затемненными участками.
- •Шаг 3. Арифметические операции с изображениями.
- •Шаг 4. Растяжение динамического диапазона интенсивностей пикселей изображения.
- •Реализация некоторых методов видоизменения гистограмм в системе Matlab
- •Шаг 3: Экспоненциальное преобразование гистограммы.
- •Шаг 4: Преобразование гистограммы по закону Рэлея.
- •Шаг 5: Преобразование гистограммы по закону степени .
- •Шаг 6: Гиперболическое преобразование гистограммы.
- •Шаг 3: Использование медианного фильтра для устранения импульсного шума.
- •Шаг 4: Подавление шумовой составляющей с использованием операции сглаживания.
- •Шаг 5: Пороговый метод подавления шумов.
- •Шаг 6: Низкочастотная фильтрация с использованием шумоподавляющих масок.
Шаг 4: Реализация методов с параметрами 'circular' и 'symmetric'.
Оставшиеся две опции определяют два подхода. Один из них использует опцию 'circular' и состоит в повторяемости исходного изображения вдоль каждой размерности, второй - использует опцию 'symmetric' и состоит в повторяемости зеркальных отражений исходного изображения. Продемонстрируем это на конкретных примерах.
Thalf=maketform('affine', [1 0; a 1; 0 0]/2);
Bc=imtransform(A, Thalf,makeresampler({'cubic', 'nearest'}, ...
'circular'), 'XData', [-49 500], 'YData', ...
[-49 400], 'FillValues', orange);
figure, imshow(Bc);
title('Pad Method=''circular''');
Bs=imtransform(A, Thalf, makeresampler({'cubic', 'nearest'}, ...
'symmetric'), 'XData', [-49 500], 'YData', ...
[-49 400], 'FillValues', orange);
figure, imshow(Bs);
title('Pad Method=''symmetric''');
Извлечение данных из трехмерных магниторезонансных изображений
Функции imtransform и tformarray могут быть использованы при интерполяции и других преобразованиях трехмерных магниторезонансных изображений, особенно при получении числовых характеристик.
Ключевые термины |
Аффинные, традиционные и комплексные преобразования, трехмерные и двухмерные преобразования, исходный массив преобразований, дискретизация выбранных размерностей |
Ключевые функции |
maketform, makeresampler, imtransform, tformarray |
Просмотр демонстрационного примера. Демонстрация включает следующие шаги:
Шаг 1: Считывание и просмотр магниторезонансных изображений (горизонтальные срезы).
Шаг 2: Получение сагиттальных данных на основе горизонтальных срезов с использованием функции imtransform.
Шаг 3: Получение сагиттальных данных на основе горизонтальных срезов с использованием функции tformarray.
Шаг 4: Получение сагиттальных данных и отображение их в виде последовательности.
Шаг 5: Получение корональных данных и отображение их в виде последовательности.
Шаг 1: Считывание и просмотр магниторезонансных изображений (горизонтальные срезы). В этом примере используются магниторезонансные данные, которые представлены в MATLAB и используются при описании функций montage и immovie. Считывание магниторезонансных изображений добавляет две переменные в рабочее пространство: D (128x128x1x27, в формате uint8) и полутоновую палитру map (89x3, в формате double).
Переменная D включает 27 горизонтальных срезов магниторезонансных данных сканирования человеческого черепа с размерностью 128x128. Значения элементов D находятся в диапазоне от 0 до 88. Таким образом, палитра обеспечивает генерацию изображения в диапазоне, пригодном для визуального анализа. Размерность данных в D должна быть согласована с функцией immovie. Первых две размерности являются пространственными. Третья размерность представляет собой размерность цвета. Числа третьей размерности указывают на индексы в палитре, например, size(D, 3) и используются для описания RGB-составляющих цвета. Четвертая размерность является временной и только в очень редких случаях используется в качестве пространственной координаты. Приведенные выше пространственные размерности в D используются в функциях imtransform или tformarray для преобразования слайдов горизонтальных срезов в сагиттальные данные. Пространственные размерности D размещены в такой последовательности:
Размерность 1: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части)
Размерность 2: С левой части головы на правую
Размерность 4: От верхней части головы к нижней (inferior и superior).
Данные, которые представляют собой набор из 27 горизонтальных срезов, подвергаются последующей обработке. Для предотвращения непредсказуемых ситуаций при обработке данных, в примере используется функция iptgetpref.
truesizewarning=iptgetpref('TruesizeWarning');
iptsetpref('TruesizeWarning', 'off');
load mri;
figure;
immovie(D, map);
montage(D, map);
title('Horizontal Slices');
Шаг 2: Получение сагиттальных данных на основе горизонтальных срезов с использованием функции imtransform. Существует возможность создания среднесагиттальных срезов, полученных на основе магниторезонансных данных, взятых из D и преобразованных с учетом анализа разных интервалов среза и пространственной ориентации.
Согласно сказанному выше, получение среднесагиттальных срезов проводят следующим образом.
M1=D(:, 64, :, :); size(M1) Также существует возможность просмотра M1 как изображения с размерностью 128x1x1x27. С использованием функции reshape данные M1 можно преобразовать в изображение с размерностью 128x27, с дальнейшим просмотром с помощью imshow. M2=reshape(M1, [128 27]); size(M2) figure, imshow(M2, map); title('Sagittal - Raw Data');
Размерности в M2 следующие:
Размерность 1: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части)
Размерность 2: От верхней части головы к нижней (inferior и superior).
Качество визуального просмотра можно улучшить, изменив пространственное расположение (ориентацию) изображения и изменив масштаб вдоль одной из осей с коэффициентом 2.5. Для улучшения визуального просмотра также используются аффинные преобразования. T0=maketform('affine', [0 -2.5; 1 0; 0 0]); Параметр, который применяется при реализации функции maketform и представляет собой блок 2x2 [ 0 -2.5 1 0 ] характеризует описанные выше преобразования поворота и масштабирования. После преобразований получим:
Размерность 1: От верхней части головы к нижней (inferior и superior).
Размерность 2: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части)
Выражение imtransform(M2, T0, 'cubic') применяется для преобразования данных из T в M2 и обеспечения приемлемой разрешительной способности при интерполяции вдоль направления сверху вниз. Однако, при такого рода преобразованиях отпадает необходимость в проведении кубической интерполяции в направлении от передней части головы к задней. Поэтому окрестности в этом направлении определяются с большей степенью эффективности. R2=makeresampler({'cubic', 'nearest'}, 'fill'); M3=imtransform(M2, T0, R2); figure, imshow(M3, map); title('Sagittal - IMTRANSFORM')
Шаг 3: Получение сагиттальных данных на основе горизонтальных срезов с использованием функции tformarray. В этом пункте мы получим результаты аналогичные результатам, полученным в пункте 2. Только теперь для преобразования трехмерных данных в двухмерные, а также для других операций будем использовать функцию tformarray. В шаге 2 начальные данные представляют собой трехмерный массив, а результат обработки представлен в виде двумерного массива. При преобразованиях используется функция imtransform, которая создает массив М3, а также промежуточные двумерные массивы M1 и M2. При использовании аргумента типа TDIMS_A в функции tformarray существует возможность проведения определенных преобразований для исходного массива. В результате этих преобразований получится изображение с такими размерностями:
Размерность 1: Сверху вниз (исходная размерность)
Размерность 2: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части, исходная размерность)
Таким образом, получим примерный сагиттальный вид с исходной размерностью 2 при параметре tdims_a=[4 1 2]. Параметр tform можно получить, проводя двухмерные аффинные преобразования, которые заключаются в масштабировании размерности 1 с коэффициентом 2.5 и прибавлении к массиву значения 68.5. Вторая часть преобразований, которые заключаются в получении 64-го сагиттального плана, описывается функцией INVERSE_FCN:
Инверсная функция: ipex003.m |
function U=ipex003( X, t ) U=[X repmat(t.tdata, [size(X, 1) 1])]; |
Определение коэффициентов T2 и Tc. T1=maketform('affine', [-2.5 0; 0 1; 68.5 0]); T2=maketform('custom', 3, 2, [], @ipex003, 64); Tc=maketform('composite', T1, T2); Проведем некоторые преобразования для определения третьей размерности. R3=makeresampler({'cubic', 'nearest', 'nearest'}, 'fill'); Функция tformarray преобразовывает третью пространственную размерность и массив D трансформируется в двумерные данные. Таким образом, исходное изображение с размерами 66x128 с 27 видов растягивается до 66 в вертикальном направлении. M4=tformarray(D, Tc, R3, [4 1 2], [1 2], [66 128], [], 0); Полученный результат идентичен результату, полученному при обработке функцией imtransform. figure, imshow(M4, map); title('Sagittal - TFORMARRAY');
Шаг 4: Получение сагиттальных данных и отображение их в виде последовательности. Создадим четырехмерный массив (трехмерные данные и размерность цветности), который используется для генерации движений слева направо с использованием более 30 снимков. Массив преобразований имеет такую структуру:
Размерность 1: Сверху вниз.
Размерность 2: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части)
Размерность 4: Слева направо.
В качестве первого шага проведем следующие преобразования - трансформируем исходный массив с использованием параметра TDIMS_A=[4 1 2]. Преобразования будут заключаться в перестановке и масштабировании элементов массива в вертикальной размерности. T3=maketform('affine', [-2.5 0 0; 0 1 0; 0 0 0.5; 68.5 0 -14]); Теперь в массиве преобразований tformarray параметр TSIZE_B=[66 128 35] включает 35 четырехразмерных слайдов. S=tformarray(D, T3, R3, [4 1 2], [1 2 4], [66 128 35], [], 0); Для просмотра движения сагиттальных слайдов они соответствующим образом монтируются. figure; immovie(S, map); S2=padarray(S, [6 0 0 0], 0, 'both'); montage(S2, map); title('Sagittal Slices');
Шаг 5: Получение корональных данных и отображение их в виде последовательности. Создание корональных слайдов почти аналогично созданию сагиттальных. Для этого изменим параметр TDIMS_A из [4 1 2] на [4 2 1]. Создадим серию из 45 слайдов и смонтируем из них движения. Размерности результирующего массива:
Размерность 1: Сверху вниз.
Размерность 2: Слева направо.
Размерность 4: От задней до передней части головы (ростральная (rostral) и каудальная (caudal) части)
T4=maketform('affine', [-2.5 0 0; 0 1 0; 0 0 -0.5; 68.5 0 61]);
В функции tformarray параметр TSIZE_B=[66 128 48] описывает размерности изображений.
C=tformarray(D, T4, R3, [4 2 1], [1 2 4], [66 128 45], [], 0);
Для просмотра движения кадры соответствующим образом монтируются.
figure;
immovie(C, map);
C2=padarray(C, [6 0 0 0], 0, 'both');
montage(C2, map);
title('Coronal Slices');
Отметим, что большинство операций преобразования описанных выше массивов возможно корректировать в ручном режиме. iptsetpref('TruesizeWarning', truesizewarning);
Поиск длины маятника в движении
Проведем захват серии изображений с помощью пакета Image Acquisition Toolbox и затем проанализируем их с помощью Image Processing Toolbox. Рассмотрим это на примере задачи по вычислению длины маятника в движении. Содержание
Шаг 1: Захват изображений.
Шаг 2: Выбор области колебания маятника.
Шаг 3: Сегментация маятника в каждом фрейме.
Шаг 4: Поиск центра сегментированного маятника в каждом фрейме.
Шаг 5: Вычисление радиуса колебания маятника.
Шаг 1: Захват изображений.
Считываем кадры изображений маятника в движении. Кадры изображений, после их захвата с помощью
