- •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: Низкочастотная фильтрация с использованием шумоподавляющих масок.
Imshow(he), title('h&e изображение');
text(size(he, 2),size(he, 1)+15,...
'Image courtesy of Alan Partin, Johns Hopkins University', ...
'FontSize',7,'HorizontalAlignment','right');
Шаг 2: Преобразование изображения из цветовой системы RGB в цветовую систему L*a*b*.
Какое количество цветов видно на изображении, когда не принимать во внимание возможность комбинации яркостей? На самом деле их три: белый, голубой и розовый. Следует отметить различия этих цветов между собой. Цветовое пространство L*a*b* (оно еще известно как CIELAB или CIE L*a*b*) дает возможность различать эти визуальные различия.
Цветовое пространство L*a*b* получено на основе трехцветных значений CIE XYZ. Пространство L*a*b* включает информацию о значении интенсивности 'L*', значении цветности 'a*', которое показывает какой цвет выбран на красно-зеленой оси и значение цветности 'b*' показывает какой цвет выбран на голубо-желтой оси. Вся информация о цветах содержится в значениях 'a*' и 'b*'. Оценить разницу между двумя цветами можно с использованием евклидового расстояния.
Преобразуем изображение в цветовое пространство L*a*b* с использованием функций makecform и applycform.
cform=makecform('srgb2lab');
lab_he=applycform(he, cform);
Шаг 3: Классификация цветов в пространстве 'a*b*' с использованием кластеризации (метод k-средних).
Кластеризация приводит до разделения объектов на группы. Кластеризация методом k-средних приводит также к локализации объектов в пространстве. Поиск разделения, т.е. какой объект к какому классу принадлежит, происходит на основе анализа метрического расстояния между объектами.
Далее на основании информации о цветах в пространстве 'a*b*', каждому пикселю объекта присваивается значение 'a*' и 'b*'. Используем кластеризацию методом k-средних для разделения объектов на три кластера. Для этого используем евклидовую метрику.
ab=double(lab_he(:, :, 2:3));
nrows=size(ab, 1);
ncols=size(ab, 2);
ab=reshape(ab, nrows*ncols, 2);
nColors=3;
[cluster_idx cluster_center]=kmeans(ab, nColors, 'distance', 'sqEuclidean', ...
'Replicates',3);
Шаг 4: Присвоение меток каждому пикселю изображения на основе метода k-средних.
Для каждого объекта на исходном изображении метод k-средних возвращает индекс соответствующего кластера. Значение параметра cluster_center, которое получено в результате применения метода k-средних будет использовано при дальнейшей демонстрации метода. Отметим пиксели, которые содержаться в cluster_index.
pixel_labels=reshape(cluster_idx, nrows,ncols);
imshow(pixel_labels, []), title('изображение, отмеченное кластерными индексами');
Шаг 5: Создание сегментированного изображения на основе цветного.
Используя параметр pixel_labels, можно разделить объекты на изображении hestain.png по цветах.
segmented_images=cell(1, 3);
rgb_label=repmat(pixel_labels, [1 1 3]);
for k=1 : nColors
color=he;
color(rgb_label~=k)=0;
segmented_images{k}=color;
end
imshow(segmented_images{1}), title('объекты в кластере 1');
imshow(segmented_images{2}), title('объекты в кластере 2');
mshow(segmented_images{3}), title('объекты в кластере 3');
Шаг 6: Сегментация ядер на основании отдельного изображения.
Рассмотрим изображение, которое содержит синие объекты. Отметим, что они являются темно-синими и светло-синими. Используя значение 'L*' в цветовом пространстве L*a*b* можно отделить темно-синие объекты от светло-синих.
Напомним, что параметр 'L*' содержит значения интенсивностей для каждого цвета. Найдем кластеры, которые содержат синие объекты. Получим значения интенсивностей объектов в этом кластере и обработаем их пороговым методом с использованием функции im2bw.
Параметр cluster_center содержит среднее значение 'a*' и 'b*' для каждого кластера. Синий кластер имеет второе наибольшее значение cluster_center.
mean_cluster_val=zeros(3, 1);
for k=1:nColors
mean_cluster_val(k)=mean(cluster_center(k));
end
[mean_cluster_val,idx]=sort(mean_cluster_val);
blue_cluster_num=idx(2);
L=lab_he(:, :, 1);
blue_idx=find(pixel_labels==blue_cluster_num);
L_blue=L(blue_idx);
is_light_blue=im2bw(L_blue,graythresh(L_blue));
Используем маску is_light_blue для того, чтобы пометить те пиксели, которые являются частью синего ядра. Отобразим синие ядра на разделенном изображении.
nuclei_labels=repmat(uint8(0), [nrows ncols]);
nuclei_labels(blue_idx(is_light_blue==false))=1;
nuclei_labels=repmat(nuclei_labels, [1 1 3]);
blue_nuclei=he;
blue_nuclei(nuclei_labels~=1)=0;
imshow(blue_nuclei), title('синие ядра');
Сегментация цветных изображений на основе цветового пространства L*a*b*
Рассмотрим задачу, основной целью которой является идентификация и анализ различных цветов изображения в пространстве L*a*b*. Изображение получено с помощью пакета Image Acquisition Toolbox.
Содержание
Шаг 1: Получение изображения.
Шаг 2: Вычисление выборки цветов в цветовом пространстве L*a*b* для каждой локальной области.
Шаг 3: Классификация каждого пикселя с использованием принципа ближайшей окрестности.
Шаг 4: Отображение результатов классификации по ближайшей окрестности.
Шаг 5: Отображение значений 'a*' и 'b*' отмеченных цветов.
Шаг 1: Получение изображения.
Считываем файл fabric.png, который представляет собой изображение некоторой материи. Для получения файла fabric.png можно использовать следующие функции пакета Image Acquisition Toolbox.
% Использование захватчика изображений, камеры Pulnix TMC-9700
% и получение данных в формате NTSC.
% vidobj=videoinput('matrox', 1, 'M_NTSC_RGB');
% Окно предварительного просмотра.
% preview(vidobj);
% Захват данных.
% fabric=getsnapshot(vidobj);
% imwrite(fabric, 'fabric.png', 'png');
% Удаление изменений.
% delete(vidobj)
% clear vidobj;
fabric=imread('fabric.png');
figure(1), imshow(fabric), title('Материя');
