Анизотропная диффузионная фильтрация изображений
Чтение изображения в рабочую область и его отображение.
I = imread('cameraman.tif'); imshow(I) title('Original Image')

Сглаживание изображения с помощью анизотропной диффузии. Для сравнения также сглаживайте изображение с помощью гауссова размытия. Корректировка стандартного отклонения sigma гауссово сглаживающее ядро так, что текстурированные области, такие как трава, сглаживаются в одинаковом количестве для обоих способов.
Idiffusion = imdiffusefilt(I); sigma = 1.2; Igaussian = imgaussfilt(I,sigma);
Просмотрите результаты.
montage({Idiffusion,Igaussian},'ThumbnailSize',[])
title('Smoothing Using Anisotropic Diffusion (Left) vs. Gaussian Blurring (Right)')
Анизотропная диффузия сохраняет резкость рёбер лучше гауссова размытия.
Прочитайте изображение в градациях серого, затем примените к нему сильный гауссов шум. Отображение шумного изображения.
I = imread('pout.tif'); noisyImage = imnoise(I,'gaussian',0,0.005); imshow(noisyImage) title('Noisy Image')

Вычислите индекс структурного подобия (SSIM) для измерения качества шумного изображения. Чем ближе значение SSIM к 1, тем лучше изображение согласуется с бесшумным опорным изображением.
n = ssim(I,noisyImage); disp(['The SSIM value of the noisy image is ',num2str(n),'.'])
The SSIM value of the noisy image is 0.26556.
Уменьшите шум с помощью анизотропной диффузии. Сначала попробуйте использовать параметры по умолчанию для анизотропного диффузионного фильтра и отобразите результат.
B = imdiffusefilt(noisyImage);
imshow(B)
title('Anisotropic Diffusion with Default Parameters')
nB = ssim(I,B); disp(['The SSIM value using default anisotropic diffusion is ',num2str(nB),'.'])
The SSIM value using default anisotropic diffusion is 0.65665.
Изображение все еще ухудшается из-за шума, поэтому уточните фильтр. Выберите метод квадратичной проводимости, поскольку изображение характеризуется более широкими однородными областями, чем краями с высокой контрастностью. Оцените оптимальный порог градиента и количество итераций с помощью imdiffuseest функция. Отображение результирующего изображения.
[gradThresh,numIter] = imdiffuseest(noisyImage,'ConductionMethod','quadratic'); C = imdiffusefilt(noisyImage,'ConductionMethod','quadratic', ... 'GradientThreshold',gradThresh,'NumberOfIterations',numIter); imshow(C) title('Anisotropic Diffusion with Estimated Parameters')

nC = ssim(I,C); disp(['The SSIM value using quadratic anisotropic diffusion is ',num2str(nC),'.'])
The SSIM value using quadratic anisotropic diffusion is 0.88135.
Шум менее очевиден в полученном изображении. Значение SSIM, которое ближе к 1, подтверждает, что качество изображения улучшилось.
Загрузите шумный 3-D серый объем МРТ.
load mristackУменьшение шума с учетом краев объема с помощью анизотропной диффузии. Чтобы предотвратить чрезмерное сглаживание малоконтрастных признаков в мозге, уменьшите число итераций по сравнению с числом по умолчанию, 5. Компромисс заключается в том, что удаляется меньше шума.
diffusedImage = imdiffusefilt(mristack,'NumberOfIterations',3);Чтобы сравнить шумное изображение и отфильтрованное изображение в деталях, отобразите десятый фрагмент того и другого.
imshowpair(mristack(:,:,10),diffusedImage(:,:,10),'montage') title('Noisy Image (Left) vs. Anisotropic-Diffusion-Filtered Image (Right)')

Вычислите показатель оценки качества изображения естественности (NIQE), усредненный по всем срезам объема. Оценка NIQE обеспечивает количественную меру качества изображения, которая не требует эталонного изображения. Более низкие оценки NIQE отражают лучшее качество воспринимаемого изображения.
nframes = size(mristack,3); m = 0; d = 0; for i = 1:nframes m = m + niqe(mristack(:,:,i)); d = d + niqe(diffusedImage(:,:,i)); end mAvg = m/nframes; dAvg = d/nframes; disp(['The NIQE score of the noisy volume is ',num2str(mAvg),'.'])
The NIQE score of the noisy volume is 5.7794.
disp(['The NIQE score using anisotropic diffusion is ',num2str(dAvg),'.'])
The NIQE score using anisotropic diffusion is 4.1391.
Оценка NIQE согласуется с наблюдением пониженного шума в отфильтрованном изображении.
I - Изображение для фильтрацииФильтруемое изображение, указанное как 2-D изображение в градациях серого размера m-by-n или 3-D объем в градациях серого размера m-by-n-by-k.
Примечание
Применение анизотропной диффузионной фильтрации к цветному изображению imdiffusefilt на каждом цветовом канале независимо.
Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
imdiffusefilt(I,'NumberOfIterations',4,'Connectivity','minimal') выполняет анизотропную диффузию на изображении I, используя 4 итерации и минимальную связность.'GradientThreshold' - Порог градиентаПорог градиента, заданный как пара, разделенная запятыми, состоящая из 'GradientThreshold' и числовой скаляр или числовой вектор длины NumberOfIterations. Значение GradientThreshold управляет процессом проводимости, классифицируя значения градиента как фактическое ребро или как шум. Увеличение значения GradientThreshold больше сглаживает изображение. Значение по умолчанию составляет 10% от динамического диапазона изображения. Вы можете использовать imdiffuseest функция для оценки подходящего значения GradientThreshold.
'NumberOfIterations' - количество итераций;5 (по умолчанию) | положительное целое числоЧисло итераций, используемых в диффузионном процессе, указанное как пара, разделенная запятыми, состоящая из 'NumberOfIterations' и положительное целое число. Вы можете использовать imdiffuseest функция для оценки подходящего значения NumberOfIterations.
'Connectivity' - Подключение'maximal' (по умолчанию) | 'minimal'Связность пикселя с его соседями, заданная как разделенная запятыми пара, состоящая из 'Connectivity' и одно из этих значений:
'maximal' - Рассматривает 8 ближайших соседей для 2-D изображений и 26 ближайших соседей для 3-D изображений
'minimal' - Рассматривает 4 ближайших соседа для 2-D изображений и 6 ближайших соседей для 3-D изображений
'ConductionMethod' - Метод проводимости'exponential' (по умолчанию) | 'quadratic'Метод проводимости, определяемый как разделенная запятыми пара, состоящая из 'ConductionMethod' и 'exponential' или 'quadratic'. Экспоненциальная диффузия предпочитает края с высокой контрастностью по сравнению с краями с низкой контрастностью. Квадратичная диффузия благоприятствует широким областям по сравнению с меньшими областями.
J - Диффузионно-фильтрованное изображениедиффузионно-фильтрованное изображение, возвращаемое в виде числового массива того же размера и типа данных, что и входное изображение, I.
[1] Perona, P. и Дж. Малик. «Масштабно-пространственное и краевое обнаружение с использованием анизотропной диффузии». Транзакции IEEE ® по анализу шаблонов и машинному интеллекту. Том 12, № 7, июль 1990, стр. 629-639.
[2] Гериг, Г., О. Кублер, Р. Кикинис и Ф. А. Джолес. «Нелинейная анизотропная фильтрация данных МРТ». Транзакции IEEE по медицинской визуализации. Том 11, № 2, июнь 1992 г., стр. 221-232.
imdiffuseest | imfilter | imgaussfilt | imguidedfilter | imnlmfilt | locallapfilt
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.