РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
629 of 824 menu

Функция io.decode_png

Функция io.decode_png преобразует закодированное изображение формата PNG в тензор TensorFlow. Первым параметром функция принимает тензор строки с байтами изображения. Вторым параметром можно передать число каналов channels, а третьим - тип данных dtype. Функция возвращает трехмерный тензор с формой (height, width, channels).

Синтаксис

tf.io.decode_png(contents, [channels], [dtype], [name])

Пример

Давайте закодируем небольшое изображение в PNG с помощью функции io.encode_png, а затем декодируем его обратно:

import tensorflow as tf img = tf.constant([[[255, 0, 0], [0, 255, 0]], [[0, 0, 255], [255, 255, 0]]], dtype=tf.uint8) encoded = tf.io.encode_png(img) t = tf.io.decode_png(encoded) print(t)

Результат выполнения кода:

tf.Tensor( [[[255 0 0] [ 0 255 0]] [[ 0 0 255] [255 255 0]]], shape=(2, 2, 3), dtype=uint8)

Пример

Давайте декодируем PNG в оттенках серого, указав параметр channels равным 1:

import tensorflow as tf img = tf.constant([[[255, 0, 0], [0, 255, 0]], [[0, 0, 255], [255, 255, 0]]], dtype=tf.uint8) encoded = tf.io.encode_png(img) t = tf.io.decode_png(encoded, channels=1) print(t)

Результат выполнения кода:

tf.Tensor( [[[ 85] [150]] [[ 29] [226]]], shape=(2, 2, 1), dtype=uint8)

Пример

Давайте декодируем PNG с типом данных float32:

<+python+> import tensorflow as tf img = tf.constant([[[255, 0, 0], [0, 255, 0]], [[0, 0, 255], [255, 255, 0]]], dtype=tf.uint8) encoded = tf.io.encode_png(img) t = tf.io.decode_png(encoded, dtype=tf.float32) print(t) <-python+>

Результат выполнения кода:

tf.Tensor( [[[255. 0. 0.] [ 0. 255. 0.]] [[ 0. 0. 255.] [255. 255. 0.]]], shape=(2, 2, 3), dtype=float32)

Пример

Давайте декодируем PNG с четырьмя каналами RGBA:

import tensorflow as tf img = tf.constant([[[255, 0, 0, 255], [0, 255, 0, 128]], [[0, 0, 255, 64], [255, 255, 0, 0]]], dtype=tf.uint8) encoded = tf.io.encode_png(img) t = tf.io.decode_png(encoded, channels=4) print(t)

Результат выполнения кода:

tf.Tensor( [[[255 0 0 255] [ 0 255 0 128]] [[ 0 0 255 64] [255 255 0 0]]], shape=(2, 2, 4), dtype=uint8)

Смотрите также

  • функцию encode_png,
    которая кодирует тензор в PNG
  • функцию decode_jpeg,
    которая декодирует изображение JPEG
  • функцию decode_bmp,
    которая декодирует изображение BMP
  • функцию decode_gif,
    которая декодирует изображение GIF
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить