Функция decode_image
Функция decode_image преобразует закодированное изображение,
хранящееся в виде строки байтов, в тензор TensorFlow.
Первым параметром функция принимает тензор со строкой байтов изображения.
Вторым параметром можно передать имя формата изображения
(jpeg, png, gif, bmp).
Третьим параметром передается количество каналов: 0 - использовать
каналы из изображения, 1 - оттенки серого, 3 - RGB,
4 - RGBA. Функция возвращает тензор с типом uint8
для целочисленных изображений.
Синтаксис
tf.io.decode_image(contents, [channels], [dtype], [name])
Пример
Давайте закодируем простое изображение в PNG и затем декодируем его
обратно с помощью decode_image:
import tensorflow as tf
t = tf.constant([[[1, 2, 3], [4, 5, 6]]], dtype=tf.uint8)
encoded = tf.io.encode_png(t)
res = tf.io.decode_image(encoded)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[1 2 3]
[4 5 6]]], shape=(1, 2, 3), dtype=uint8)
Пример
Давайте декодируем изображение с принудительным приведением к трем каналам RGB:
import tensorflow as tf
t = tf.constant([[[10, 20, 30], [40, 50, 60]]], dtype=tf.uint8)
encoded = tf.io.encode_png(t)
res = tf.io.decode_image(encoded, channels=3)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[10 20 30]
[40 50 60]]], shape=(1, 2, 3), dtype=uint8)
Пример
Давайте декодируем изображение в оттенках серого, указав один канал:
import tensorflow as tf
t = tf.constant([[[1, 2, 3], [4, 5, 6]]], dtype=tf.uint8)
encoded = tf.io.encode_png(t)
res = tf.io.decode_image(encoded, channels=1)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[2]
[5]]], shape=(1, 2, 1), dtype=uint8)
Смотрите также
-
функцию
decode_jpeg,
которая декодирует изображение формата JPEG -
функцию
decode_png,
которая декодирует изображение формата PNG -
функцию
decode_gif,
которая декодирует изображение формата GIF -
функцию
decode_bmp,
которая декодирует изображение формата BMP