ssim

Структурный Индекс Подобия (SSIM) для измерения качества изображения

Синтаксис

ssimval = ssim(A,ref)
[ssimval,ssimmap] = ssim(A,ref)
___ = ssim(A,ref,Name,Value)

Описание

ssimval = ssim(A,ref) вычисляет Структурный Индекс Подобия (SSIM) значение для изображения A с помощью ref в качестве ссылочного изображения.

пример

[ssimval,ssimmap] = ssim(A,ref) также возвращает локальное значение SSIM для каждого пикселя в A.

___ = ssim(A,ref,Name,Value) вычисляет SSIM, с помощью пар "имя-значение", чтобы управлять аспектами вычисления.

Примеры

свернуть все

Считайте изображение в рабочую область. Создайте другую версию изображения, применив размывающийся фильтр. Отобразите оба изображения.

ref = imread('pout.tif');
H = fspecial('Gaussian',[11 11],1.5);
A = imfilter(ref,H,'replicate');

subplot(1,2,1); imshow(ref); title('Reference Image');
subplot(1,2,2); imshow(A);   title('Blurred Image');

Вычислите глобальное значение SSIM для изображения и локальные значения SSIM для каждого пикселя. Возвратите глобальное значение SSIM и отобразите локальную карту ценности SSIM.

[ssimval, ssimmap] = ssim(A,ref);
  
fprintf('The SSIM value is %0.4f.\n',ssimval);
The SSIM value is 0.9407.
  
figure, imshow(ssimmap,[]);
title(sprintf('ssim Index Map - Mean ssim Value is %0.4f',ssimval));

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

свернуть все

Отобразите, чье качество должно быть измерено, задано как 2D полутоновое изображение или 3-D изображение объема. Должен быть одного размера и класс как ref

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

Ссылочное изображение, против который качество, если измерено, заданный как 2D полутоновое изображение или 3-D изображение объема. Должен быть одного размера и класс как A

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

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

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

Пример: ssim(A,ref,'DynamicRange',100)

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

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

Экспоненты для яркости, контраста и структурных условий, заданных как вектор с 3 элементами неотрицательных вещественных чисел, [alpha beta gamma].

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

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

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

Константы регуляризации для яркости, контраста и структурных условий, заданных как вектор с 3 элементами неотрицательных вещественных чисел формы [c1 c2 c3]. Функция ssim использует эти константы регуляризации, чтобы избежать нестабильности для областей изображений, где локальное среднее или стандартное отклонение близко к нулю. Поэтому маленькие ненулевые значения должны использоваться для этих констант.

По умолчанию,

  • C1 = (0.01*L).^2, где L является заданным значением DynamicRange.

  • C2 = (0.03*L).^2, где L является заданным значением DynamicRange.

  • C3 = C2/2

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

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

свернуть все

Структурное Подобие (SSIM) Индекс, возвращенный как скалярный double, кроме тех случаев, когда A и ref имеют класс single, в этом случае ssimval, имеет класс single.

Локальные значения Структурного Подобия (SSIM) Индекс, возвращенный как числовой массив класса double кроме тех случаев, когда A и ref имеют класс single, в этом случае ssimmap, имеют класс single. ssimmap является массивом, одного размера как входное изображение A.

Больше о

свернуть все

Структурный индекс подобия

Метрика качества изображения, которая оценивает визуальное влияние трех характеристик изображения: яркость, контраст и структура.

Алгоритмы

Структурное Подобие (SSIM) Индексный качественный индекс оценки основано на вычислении трех условий, а именно, термин яркости, контрастный термин и структурный термин. Полный индекс является мультипликативной комбинацией трех условий.

SSIM(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γ

где

l(x,y)=2μxμy+C1μx2+μy2+C1,c(x,y)=2σxσy+C2σx2+σy2+C2,s(x,y)=σxy+C3σxσy+C3

где μx, μy, σx, σy, и σxy являются локальными средними значениями, стандартными отклонениями и перекрестной ковариацией для изображений x, y. Если α = β = γ = 1 (значение по умолчанию для Exponents), и C3 = C2/2 (выбор по умолчанию C3) индекс упрощает до:

SSIM(x,y)=(2μxμy+C1)(2σxy+C2)(μx2+μy2+C1)(σx2+σy2+C2)

Ссылки

[1] Чжоу, W., А. К. Бовик, Х. Р. Шейх и Э. П. Симончелли. "Отобразите Оценку Qualifty: От Ошибочной Видимости до Структурного Подобия". Транзакции IEEE на Обработке изображений. Издание 13, Выпуск 4, апрель 2004, стр 600–612.

Введенный в R2014a