Функция image.rgb_to_grayscale
Функция image.rgb_to_grayscale преобразует
одно или несколько RGB-изображений в изображения
в оттенках серого. Первым параметром функция
принимает тензор с изображениями, последним
измерением которого должно быть 3
(каналы красного, зеленого и синего).
Вторым параметром можно передать имя
операции.
Функция возвращает тензор той же формы, что и
входной, за исключением последнего измерения,
которое становится равным 1.
Преобразование выполняется по формуле
взвешенной суммы каналов:
0.2989 * R + 0.5870 * G + 0.1140 * B.
Синтаксис
tf.image.rgb_to_grayscale(images, name=None)
Пример
Давайте преобразуем одно RGB-изображение
размером 2×2 в оттенки серого:
import tensorflow as tf
t = tf.constant([
[[255, 0, 0], [0, 255, 0]],
[[0, 0, 255], [255, 255, 255]]
], dtype=tf.float32)
res = tf.image.rgb_to_grayscale(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[ 76.245 ]
[149.685 ]]
[[ 29.07 ]
[255. ]]], shape=(2, 2, 1), dtype=float32)
Пример
Давайте преобразуем пакет из двух RGB-изображений
размером 1×2:
import tensorflow as tf
t = tf.constant([
[[[255, 255, 0], [0, 255, 255]]],
[[[128, 128, 128], [255, 0, 255]]]
], dtype=tf.float32)
res = tf.image.rgb_to_grayscale(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[[226.065 ]
[178.755 ]]]
[[[128. ]
[105.26 ]]]], shape=(2, 1, 2, 1), dtype=float32)
Пример
Давайте проверим, что значение серого канала
для белого цвета равно 255:
import tensorflow as tf
t = tf.constant([[[255, 255, 255]]], dtype=tf.float32)
res = tf.image.rgb_to_grayscale(t)
print(res.numpy()[0, 0, 0])
Результат выполнения кода:
255.0
Смотрите также
-
функцию
grayscale_to_rgb,
которая преобразует оттенки серого в RGB -
функцию
rgb_to_hsv,
которая преобразует RGB в цветовое пространство HSV -
функцию
adjust_saturation,
которая регулирует насыщенность изображения -
функцию
convert_image_dtype,
которая преобразует тип данных изображения