multissim3

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

Описание

пример

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

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

пример

[score,qualityMaps] = multissim3(V,Vref) также возвращает локальное значение индекса MS-SSIM для каждой воксели в V, и каждый из масштабированных вариантов V. The 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 для томов и получите локальные карты структурного подобия. The multissim3 функция возвращает qualitymapsмассив ячеек, содержащий локальную карту структурного подобия для каждой из масштабированных версий тома. В карте качества значение 1 указывает на наивысшее качество.

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

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

load mri D
Vref = squeeze(D);

Создайте шумную версию объема для сравнения измерений quailty.

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

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

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 (getrangefromclass(V)). Например, динамическая область значений по умолчанию 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 объекты1 на 1 dlarray объект с одним измерением MS-SSIM.
N-D числовые массивы с N > 3Числовой массив той же размерности, что и входные объемы. Первые три размерности score являются синглтонными размерностями. Существует одно измерение MS-SSIM для каждого элемента с более высокими размерностями.

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

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

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

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

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

Алгоритмы

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

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

Ссылки

[1] Wang, Z., Simoncelli, E.P., Bovik, A.C. Multiscale Структурное сходство для оценки качества изображений. В: Тридцать седьмая Асиломарская конференция по сигналам, системам и компьютерам, 2003, 1398-1402. Pacific Grove, CA, USA: IEEE, 2003. https://doi.org/10.1109/ACSSC.2003.1292216.

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

Введенный в R2020a