Функция decode_png
Функция decode_png преобразует сжатые
байты изображения в формате PNG в тензор.
Первым параметром функция принимает строку
или тензор с байтами изображения. Вторым
параметром можно передать количество каналов,
а третьим - тип данных результирующего тензора.
Синтаксис
tf.io.decode_png(contents, [channels], [dtype])
Пример
Давайте закодируем тензор в PNG и затем декодируем его обратно:
import tensorflow as tf
t = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]], dtype=tf.uint8)
encoded = tf.io.encode_png(t)
decoded = tf.io.decode_png(encoded)
print(decoded)
Результат выполнения кода:
tf.Tensor(
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]], shape=(2, 2, 3), dtype=uint8)
Пример
Давайте декодируем изображение с указанием одного канала, чтобы получить оттенки серого:
import tensorflow as tf
t = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]], dtype=tf.uint8)
encoded = tf.io.encode_png(t)
decoded = tf.io.decode_png(encoded, channels=1)
print(decoded)
Результат выполнения кода:
tf.Tensor(
[[[ 2]
[ 5]]
[[ 8]
[11]]], shape=(2, 2, 1), dtype=uint8)
Пример
Давайте декодируем изображение с типом
float32:
import tensorflow as tf
t = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]], dtype=tf.uint8)
encoded = tf.io.encode_png(t)
decoded = tf.io.decode_png(encoded, dtype=tf.float32)
print(decoded)
Результат выполнения кода:
tf.Tensor(
[[[ 1. 2. 3.]
[ 4. 5. 6.]]
[[ 7. 8. 9.]
[10. 11. 12.]]], shape=(2, 2, 3), dtype=float32)
Смотрите также
-
функцию
decode_image,
которая декодирует изображение любого формата -
функцию
decode_jpeg,
которая декодирует изображение в формате JPEG -
функцию
encode_png,
которая кодирует тензор в формат PNG -
функцию
convert_image_dtype,
которая преобразует тип данных изображения