Функция image.decode_gif
Функция image.decode_gif преобразует
закодированное GIF-изображение в тензор
TensorFlow. Первым параметром функция
принимает содержимое GIF-файла в виде
строки или тензора. Вторым параметром
можно передать имя операции, а третьим -
параметр expand_animations, который
управляет тем, как обрабатываются
анимированные GIF-файлы.
Если expand_animations равен
True, то для анимированного GIF
функция возвращает четырехмерный тензор
формы [frames, height, width, channels].
Если expand_animations равен
False, то возвращается трехмерный
тензор формы [height, width, channels]
для первого кадра.
Синтаксис
tf.image.decode_gif(contents, [name], [expand_animations])
Пример
Давайте декодируем статичное GIF-изображение, содержимое которого представлено в виде строки. Для этого сначала создадим GIF-байты из простого изображения и передадим их в функцию:
import tensorflow as tf
t = tf.constant([[[1, 2, 3], [4, 5, 6]]], dtype=tf.uint8)
gif = tf.io.encode_gif(t)
res = tf.image.decode_gif(gif)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[1 2 3]
[4 5 6]]], shape=(1, 2, 3), dtype=uint8)
Пример
Давайте декодируем анимированный GIF
с параметром expand_animations=False,
чтобы получить только первый кадр:
import tensorflow as tf
t = tf.constant([[[1, 2, 3], [4, 5, 6]]], dtype=tf.uint8)
gif = tf.io.encode_gif(t)
res = tf.image.decode_gif(gif, expand_animations=False)
print(res)
Результат выполнения кода:
tf.Tensor(
[[1 2 3]
[4 5 6]], shape=(2, 3), dtype=uint8)
Пример
Давайте декодируем GIF-файл с диска.
Предположим, что файл называется
'image.gif':
import tensorflow as tf
gif = tf.io.read_file('image.gif')
res = tf.image.decode_gif(gif)
print(res.shape)
print(res.dtype)
Результат выполнения кода:
(1, 2, 3)
<dtype: 'uint8'>
Смотрите также
-
функцию
decode_image,
которая декодирует изображение в формате GIF, BMP, JPEG или PNG -
функцию
decode_png,
которая декодирует PNG-изображение в тензор -
функцию
decode_jpeg,
которая декодирует JPEG-изображение в тензор -
функцию
encode_png,
которая кодирует тензор в PNG-изображение