tf.image.ssim
| Просмотреть исходный код на GitHub |
Вычисляет индекс SSIM между img1 и img2.
tf.image.ssim(
img1, img2, max_val, filter_size=11, filter_sigma=1.5, k1=0.01, k2=0.03
)
Эта функция основана на стандартной реализации SSIM из: Wang, Z., Bovik, A. C., Sheikh, H. R., & Simoncelli, E. P. (2004). Оценка качества изображения: от видимости ошибок к структурному сходству. IEEE Transactions on Image Processing.
Примечание: Истинный SSIM определяется только для оттенков серого. Эта функция не выполняет преобразования цветового пространства. (Если вход уже в формате YUV, она вычислит среднее значение YUV SSIM.)
Подробности:
- Используется гауссова фильтра с размером 11x11 и шириной 1,5.
- k1 = 0,01, k2 = 0,03, как в оригинальной статье.
Размер изображения должен быть не менее 11x11 из-за размера фильтра.
Пример:
# Read images from file.
im1 = tf.decode_png('path/to/im1.png')
im2 = tf.decode_png('path/to/im2.png')
# 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 | Первая партия изображений. |
img2 | Вторая партия изображений. |
max_val | Динамический диапазон изображений (т.е., разность между максимальным и минимальным допустимыми значениями). |
filter_size | Значение по умолчанию 11 (размер гауссова фильтра). |
filter_sigma | Значение по умолчанию 1,5 (ширина гауссова фильтра). |
k1 | Значение по умолчанию 0,01 |
k2 | Значение по умолчанию 0,03 (SSIM менее чувствителен к K2 при меньших значениях, поэтому лучше использовать значения в диапазоне 0 < K2 < 0,4). |
| Возвращаемые значения | |
|---|---|
| Тензор, содержащий значение SSIM для каждого изображения в пачке. Возвращаемые значения SSIM находятся в диапазоне (-1, 1], когда значения пикселей неотрицательны. Возвращает тензор с формой: broadcast(img1.shape[:-3], img2.shape[:-3]). |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/image/ssim