Spec-Zone.ru › TensorFlow

tf.image.ssim

Вычисляет индекс SSIM между img1 и img2.

Просмотреть псевдонимы

Псевдонимы совместимости для миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.image.ssim

tf.image.ssim(
    img1,
    img2,
    max_val,
    filter_size=11,
    filter_sigma=1.5,
    k1=0.01,
    k2=0.03,
    return_index_map=False
)

Эта функция основана на стандартной реализации SSIM из работы: Wang, Z., Bovik, A. C., Sheikh, H. R., & Simoncelli, E. P. (2004). Оценка качества изображений: от заметности ошибок до структурного сходства. IEEE Transactions on Image Processing.

Примечание: Истинный SSIM определён только для оттенков серого. Эта функция не выполняет преобразование цветового пространства. (Если входные данные уже представлены в формате YUV, будет вычислено среднее значение SSIM для YUV.)
Подробности
  • Используется фильтр Гаусса размером 11x11 и шириной 1.5.
  • k1 = 0.01, k2 = 0.03, как в исходной статье.

Размер изображений должен быть не менее 11x11 из-за размера фильтра.

Пример:

# Read images (of size 255 x 255) from file.
im1 = tf.image.decode_image(tf.io.read_file('path/to/im1.png'))
im2 = tf.image.decode_image(tf.io.read_file('path/to/im2.png'))
tf.shape(im1)  # `img1.png` has 3 channels; shape is `(255, 255, 3)`
tf.shape(im2)  # `img2.png` has 3 channels; shape is `(255, 255, 3)`
# Add an outer batch for each image.
im1 = tf.expand_dims(im1, axis=0)
im2 = tf.expand_dims(im2, axis=0)
# Compute SSIM over tf.uint8 Tensors.
ssim1 = tf.image.ssim(im1, im2, max_val=255, filter_size=11,
                      filter_sigma=1.5, k1=0.01, k2=0.03)

# Compute SSIM over tf.float32 Tensors.
im1 = tf.image.convert_image_dtype(im1, tf.float32)
im2 = tf.image.convert_image_dtype(im2, tf.float32)
ssim2 = tf.image.ssim(im1, im2, max_val=1.0, filter_size=11,
                      filter_sigma=1.5, k1=0.01, k2=0.03)
# ssim1 and ssim2 both have type tf.float32 and are almost equal.
Аргументы
img1 Пакет первых изображений. Тензор размерности 4 с формой [batch, height, width, channels], содержащий только положительные значения пикселей.
img2 Пакет вторых изображений. Тензор размерности 4 с формой [batch, height, width, channels], содержащий только положительные значения пикселей.
max_val Динамический диапазон изображений (то есть разность между максимально и минимально допустимыми значениями).
filter_size Значение по умолчанию — 11 (размер фильтра Гаусса).
filter_sigma Значение по умолчанию — 1.5 (ширина фильтра Гаусса).
k1 Значение по умолчанию — 0.01
k2 Значение по умолчанию — 0.03 (SSIM менее чувствителен к K2 при низких значениях, поэтому лучше выбирать значения в диапазоне 0 < K2 < 0.4).
return_index_map Если значение True, возвращает локальную карту SSIM вместо общего среднего значения.
Возвращаемое значение
Тензор, содержащий значение SSIM для каждого изображения в пакете, либо, если return_index_map имеет значение True, тензор, содержащий значение SSIM для каждого пикселя каждого изображения в пакете. Возвращаемые значения SSIM находятся в диапазоне (-1, 1], если значения пикселей неотрицательны. Возвращает тензор с формой: broadcast(img1.shape[:-3], img2.shape[:-3]) или broadcast(img1.shape[:-1], img2.shape[:-1]).

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/image/ssim

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API