Функция io.encode_jpeg
Функция io.encode_jpeg преобразует
тензор изображения в сжатую бинарную
строку формата JPEG. Первым параметром
функция принимает тензор с пиксельными
данными формы [height, width, channels].
Вторым параметром можно передать качество
сжатия quality в диапазоне от 0 до
100. Третьим параметром задается
порядок каналов channels, а четвертым -
прогрессивный режим progressive.
Функция возвращает скалярный тензор
типа string, содержащий байты
JPEG-изображения.
Синтаксис
tf.io.encode_jpeg(image, [format], [quality], [progressive], [optimize_size], [chroma_downsampling], [density_unit], [x_density], [y_density], [xmp_metadata], [name])
Пример
Давайте закодируем тензор изображения
размером 2 на 2 пикселя с тремя
каналами в формат JPEG:
import tensorflow as tf
image = tf.constant([
[[255, 0, 0], [0, 255, 0]],
[[0, 0, 255], [255, 255, 0]]
], dtype=tf.uint8)
encoded = tf.io.encode_jpeg(image)
print(encoded)
Результат выполнения кода:
tf.Tensor(b'\xff\xd8\xff\xe0\x00\x10JFIF...', shape=(), dtype=string)
Пример
Давайте закодируем изображение с высоким качеством сжатия:
import tensorflow as tf
image = tf.constant([
[[255, 0, 0], [0, 255, 0]],
[[0, 0, 255], [255, 255, 0]]
], dtype=tf.uint8)
encoded = tf.io.encode_jpeg(image, quality=95)
print(encoded)
Результат выполнения кода:
tf.Tensor(b'\xff\xd8\xff\xe0\x00\x10JFIF...', shape=(), dtype=string)
Пример
Давайте закодируем изображение с прогрессивным режимом JPEG:
import tensorflow as tf
image = tf.constant([
[[255, 0, 0], [0, 255, 0]],
[[0, 0, 255], [255, 255, 0]]
], dtype=tf.uint8)
encoded = tf.io.encode_jpeg(image, quality=80, progressive=True)
print(encoded)
Результат выполнения кода:
tf.Tensor(b'\xff\xd8\xff\xe0\x00\x10JFIF...', shape=(), dtype=string)
Пример
Давайте сохраним закодированное изображение в файл:
import tensorflow as tf
image = tf.constant([
[[255, 0, 0], [0, 255, 0]],
[[0, 0, 255], [255, 255, 0]]
], dtype=tf.uint8)
encoded = tf.io.encode_jpeg(image, quality=90)
tf.io.write_file('output.jpg', encoded)
print('Image saved')
Результат выполнения кода:
"Image saved"
Смотрите также
-
функцию
decode_jpeg,
которая декодирует JPEG-изображение в тензор -
функцию
encode_png,
которая кодирует изображение в формат PNG -
функцию
encode_base64,
которая кодирует тензор в Base64 -
функцию
write_file,
которая записывает данные в файл