Функция image.encode_jpeg
Функция image.encode_jpeg принимает тензор изображения
и возвращает строку с байтами в формате JPEG.
Первым параметром передаётся тензор изображения с типом
uint8. Вторым параметром можно передать качество сжатия
quality от 0 до 100, где большее значение
означает лучшее качество и больший размер файла.
Третьим параметром можно передать метод кодирования
format, например 'rgb' или 'grayscale'.
Синтаксис
tf.image.encode_jpeg(image, [format], [quality], [progressive], [optimize_size], [chroma_downsampling], [density_unit], [x_density], [y_density], [xmp_metadata], [name])
Пример
Давайте создадим тензор изображения и закодируем его в JPEG
с качеством 90:
import tensorflow as tf
image = tf.constant([[[255, 0, 0], [0, 255, 0]], [[0, 0, 255], [255, 255, 0]]], dtype=tf.uint8)
encoded = tf.image.encode_jpeg(image, quality=90)
print(encoded)
Результат выполнения кода:
tf.Tensor(b'\xff\xd8\xff\xe0\x00\x10JFIF...', shape=(), dtype=string)
Пример
Давайте закодируем изображение в оттенках серого:
import tensorflow as tf
image = tf.constant([[[100], [150]], [[200], [250]]], dtype=tf.uint8)
encoded = tf.image.encode_jpeg(image, format='grayscale', quality=80)
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.image.encode_jpeg(image, quality=90)
decoded = tf.image.decode_jpeg(encoded)
print(decoded.shape)
Результат выполнения кода:
(2, 2, 3)
Смотрите также
-
функцию
decode_jpeg,
которая декодирует JPEG-изображение в тензор -
функцию
encode_png,
которая кодирует изображение в формат PNG -
функцию
decode_image,
которая декодирует изображение любого формата -
функцию
convert_image_dtype,
которая преобразует тип данных изображения