multissim3

Многошкальное структурное подобие (MS-SSIM) индекс по качеству объема

Описание

пример

score = multissim3(V,Vref) вычисляет многошкальное структурное подобие (MS-SSIM) индекс, score, для объема V, использование Vref как ссылочный объем.

3-D операция MS-SSIM задана для полутоновых объемов. Для входных параметров с больше, чем тремя измерениями, multissim3 обработки каждый элемент более высоких размерностей как отдельные 3-D полутоновые объемы. multissim3 обрабатывает 2D изображения RGB как 3-D полутоновые объемы. Чтобы вычислить MS-SSIM цветовых каналов в изображении RGB, используйте multissim функция.

пример

[score,qualityMaps] = multissim3(V,Vref) также возвращает локальное значение индекса MS-SSIM для каждого вокселя в V, и каждая из масштабированных версий V. qualityMaps выход является массивом ячеек, содержащим карты для каждой из масштабированных версий V, с каждым качеством сопоставляют тот же размер как соответствующая масштабированная версия.

пример

[___] = multissim3(V,Vref,Name,Value) аспекты средств управления расчета с помощью одного или нескольких аргументов значения имени. Например, задайте количество шкал с помощью 'NumScales' аргумент.

Примеры

свернуть все

Загрузите 3-D объем в рабочую область.

load mri D
Vref = squeeze(D);

Создайте шумную версию исходного объема в качественных целях сравнения измерения.

V = imnoise(Vref,'salt & pepper',0.05);

Вычислите индекс MS-SSIM, который измеряет качество входного объема по сравнению со ссылочным объемом.

score = multissim3(V,Vref)
score = single
    0.7261

Загрузите объем в рабочую область. Этот объем будет ссылочным объемом. Создайте копию ссылочного объема.

load mri D
Vref = squeeze(D);
V = Vref;

Добавьте шум в локализованную часть объема в качественных целях сравнения.

V(1:100,1:100,1:10) = imnoise(Vref(1:100,1:100,1:10),'salt & pepper',0.05);
figure
sliceViewer(V);

Вычислите индекс MS-SSIM для объемов и получите локальные структурные карты подобия. multissim3 функция возвращает qualitymaps, массив ячеек, содержащий локальное структурное подобие, сопоставляет для каждой из масштабированных версий объема. В качественной карте значение 1 указывает на высшее качество.

[score, qualitymaps] = multissim3(V,Vref);
figure
sliceViewer(V);

Загрузите объем в рабочую область.

load mri D
Vref = squeeze(D);

Создайте шумную версию объема в качественных целях сравнения измерения.

V = imnoise(Vref,'salt & pepper',0.05);

Вычислите индекс MS-SSIM для шумного объема, с помощью исходного объема в качестве ссылки. Задайте, сколько взвесить локальные вычисления индекса MS-SSIM для каждого масштабированного объема с помощью 'ScaleWeights' аргумент. Пример использует веса, заданные в статье Вана, Симончелли и Бовика.

score = multissim3(V,Vref,'ScaleWeights',[0.0448,0.2856,0.3001,0.2363,0.1333]);

Считайте объемное изображение в рабочую область.

VRef = load("mristack.mat");
VRef = im2single(VRef.mristack);

Симулируйте пакет шести изображений путем тиражирования изображения по четвертому измерению.

VRefBatch = repmat(VRef,[1 1 1 6]);

Создайте версию стека изображений с добавленной солью и перечным шумом.

VNoisyBatch = imnoise(VRefBatch,"salt & pepper");

Вычислите MS-SSIM каждого каждого объема в стеке.

score = multissim3(VNoisyBatch,VRefBatch)
score = 1x1x1x6 single array
score(:,:,1,1) =

    0.8341


score(:,:,1,2) =

    0.8347


score(:,:,1,3) =

    0.8337


score(:,:,1,4) =

    0.8333


score(:,:,1,5) =

    0.8348


score(:,:,1,6) =

    0.8343

Считайте объемное изображение в рабочую область.

VRef = load("mristack.mat");
VRef = im2single(VRef.mristack);

Создайте копию пакета изображений, добавив перечный шум и соль.

Vnoisy = imnoise(VRef,"salt & pepper");

Создайте восстановил после форматирования dlarray объекты для исходного и шумного пакета изображений.

dlref = dlarray(VRef);
dlnoisy = dlarray(Vnoisy);

Вычислите счет MS-SSIM зашумленных данных относительно исходных данных.

score = multissim3(dlnoisy,dlref)
score = 
  1x1 single dlarray

    0.8341

Входные параметры

свернуть все

Введите объем в виде числового массива трех или больше размерностей или dlarray Объект (Deep Learning Toolbox). Отформатированный dlarray объекты не могут включать больше чем одну метку канала, больше чем одну пакетную метку и другие, чем три пространственных метки.

Типы данных: single | double | int16 | uint8 | uint16

Ссылочный объем в виде числового массива трех или больше размерностей или dlarray Объект (Deep Learning Toolbox). Отформатированный dlarray объекты не могут включать больше чем одну метку канала, больше чем одну пакетную метку и другие, чем три пространственных метки. Ссылочный объем должен быть одного размера и тип данных как входной объем, V.

Типы данных: single | double | int16 | uint8 | uint16

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: score = multissim3(V,Vref,'NumScales',3);

Количество шкал раньше вычисляло MS-SSIM в виде разделенной запятой пары, состоящей из 'NumScales' и положительное целое число. Установка 'NumScales' к 1 эквивалентно использованию ssim функция с 'Exponents' набор аргумента пары "имя-значение" к [1 1 1]. Размер входного объема ограничивает количество шкал. multissim3 функционируйте масштабирует объем (NumScales - 1) времена, прореживая объем на коэффициент 2 с каждым масштабированием.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Относительные значения через шкалы в виде разделенной запятой пары, состоящей из 'ScaleWeights' и вектор из положительных чисел. Длина вектора равна количеству шкал, потому что каждый элемент соответствует одной из масштабированных версий исходного объема. multissim3 функция нормирует значения к 1. По умолчанию, равные веса шкалы fspecial('gaussian',[1,numScales],1). multissim3 функционируйте использует Распределение Гаусса в качестве значения по умолчанию, потому что человеческая визуальная чувствительность достигает максимума в средних частотах и уменьшениях в обоих направлениях. Для примера установки 'ScaleWeights', смотрите Вычисляют Веса Определения MS-SSIM для Каждого Масштабированного Объема.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Стандартное отклонение изотропной Гауссовой функции в виде разделенной запятой пары, состоящей из 'Sigma' и положительное число. Это значение задает взвешивание вокселей окружения вокруг вокселя для оценки локальной статистики. multissim3 функционируйте использует это взвешивание, чтобы не блокировать артефакты в оценке локальной статистики.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Динамический диапазон входного объема в виде положительного числа. Значение по умолчанию DynamicRange зависит от типа данных объема V, и вычисляется как diff (getrangefromclassV. Например, динамическим диапазоном по умолчанию является 255 для объемов типа данных uint8, и значением по умолчанию является 1 для объемов типа данных double или single со значениями вокселя в области значений [0, 1].

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Выходные аргументы

свернуть все

Индекс MS-SSIM для качества изображения, возвращенного в виде числа, числового массива или dlarray Объект (Deep Learning Toolbox), как обозначено в таблице. Значение score обычно находится в области значений [0, 1]. Значение 1 указывает на высшее качество и происходит когда V и Vref эквивалентны. Меньшие значения соответствуют более плохому качеству. Для некоторых комбинаций входных параметров и аргументов пары "имя-значение", score может быть отрицательным.

Введите тип объемаЗначение PSNR
3-D числовые матрицыЧисловой скаляр с одним измерением MS-SSIM.
3-D dlarray объектыdlarray 1 на 1 объект с одним измерением MS-SSIM.
Числовые массивы N-D с N> 3Числовой массив той же размерности как входные объемы. Первые три измерения score одноэлементные размерности. Существует одно измерение MS-SSIM для каждого элемента по более высоким измерениям.

Восстановленный после форматирования dlarray N-D объекты с N> 3

dlarray объект той же размерности как входные объемы. Первые три измерения score одноэлементные размерности. Существует одно измерение MS-SSIM для каждого элемента по более высоким измерениям

Отформатированный dlarray N-D объекты с N> 3

dlarray объект той же размерности как входные объемы. Пространственные размерности score одноэлементные размерности. Существует одно измерение MS-SSIM для каждого элемента вдоль любого канала или пакетной размерности.

Локальные значения индекса MS-SSIM для каждого пикселя в каждой масштабированной версии, возвращенной как массив ячеек числовых массивов или массив ячеек dlarray (Deep Learning Toolbox) объекты. Размер массива ячеек 1 NumScales. Каждый элемент в qualityMaps указывает на качество соответствующего пикселя в соответствующем масштабном коэффициенте. Формат каждого элемента использует форматирование score аргумент, на основе формата входных объемов.

Алгоритмы

Структурное подобие (SSIM) меры по индексу воспринятое качество путем определения количества структурного подобия между объемом и ссылочным объемом (см. ssim). multissim3 функция вычисляет MS-SSIM путем объединения индекса SSIM нескольких версий объема в различных шкалах. Индекс MS-SSIM может быть более устойчивым, когда по сравнению с SSIM индексируют относительно изменений просмотра условий.

multissim3 функционируйте использует арифметику с двойной точностью для входных объемов класса double. Все другие типы входных объемов используют арифметику с одинарной точностью.

Ссылки

[1] Ван, Z., Симончелли, E.P., Bovik, А.К. Малтискэйл Страктурэл Симилэрити для Оценки Качества изображения. \in: Тридцать седьмая Конференция Asilomar по Signals, Systems & Computers, 2003, 1398–1402. Пасифик-Гроув, CA, США: IEEE, 2003. https://doi.org/10.1109/ACSSC.2003.1292216.

Расширенные возможности

Введенный в R2020a