Spec-Zone.ru › TensorFlow

tf.keras.ops.image.affine_transform

Применяет заданное преобразование (преобразования) к изображению (изображениям).

tf.keras.ops.image.affine_transform(
    image,
    transform,
    interpolation='bilinear',
    fill_mode='constant',
    fill_value=0,
    data_format='channels_last'
)
Аргументы
image Входное изображение или пакет изображений. Должно быть трёхмерным или четырёхмерным.
transform Матрица (матрицы) проективного преобразования. Вектор длины 8 или тензор размера N x 8. Если одна строка преобразования равна [a0, a1, a2, b0, b1, b2, c0, c1], то она отображает выходную точку (x, y) в преобразованную входную точку (x', y') = ((a0 x + a1 y + a2) / k, (b0 x + b1 y + b2) / k), где k = c0 x + c1 y + 1. Это преобразование является обратным по отношению к преобразованию, отображающему входные точки в выходные. Обратите внимание, что градиенты не распространяются обратно в параметры преобразования. Обратите внимание, что c0 и c1 действуют только при использовании бэкенда TensorFlow; при использовании других бэкендов они будут считаться 0.
interpolation Метод интерполяции. Доступны методы "nearest" и "bilinear". По умолчанию используется "bilinear".
fill_mode Точки за пределами входных данных заполняются в соответствии с заданным режимом. Доступны методы "constant", "nearest", "wrap" и "reflect". По умолчанию используется "constant".
  • "reflect": (d c b a | a b c d | d c b a) Входные данные расширяются отражением относительно края последнего пикселя.
  • "constant": (k k k k | a b c d | k k k k) Входные данные расширяются заполнением всех значений за пределами края одним и тем же постоянным значением k, заданным параметром fill_value.
  • "wrap": (a b c d | a b c d | a b c d) Входные данные расширяются циклическим переходом к противоположному краю.
  • "nearest": (a a a a | a b c d | d d d d) Входные данные расширяются ближайшим пикселем.
fill_value Значение для точек за пределами входных данных, если fill_mode="constant". По умолчанию используется 0.
data_format Строка: "channels_last" или "channels_first". Порядок измерений во входных данных. "channels_last" соответствует входным данным с формой (batch, height, width, channels), а "channels_first" — входным данным с формой (batch, channels, height, weight). По умолчанию используется значение image_data_format из файла конфигурации Keras по пути ~/.keras/keras.json. Если вы его не задавали, будет использоваться "channels_last".
Возвращает
Изображение или пакет изображений с применённым аффинным преобразованием.

Примеры:

x = np.random.random((2, 64, 80, 3)) # batch of 2 RGB images
transform = np.array(
    [
        [1.5, 0, -20, 0, 1.5, -16, 0, 0],  # zoom
        [1, 0, -20, 0, 1, -16, 0, 0],  # translation
    ]
)
y = keras.ops.image.affine_transform(x, transform)
y.shape
(2, 64, 80, 3)
x = np.random.random((64, 80, 3)) # single RGB image
transform = np.array([1.0, 0.5, -20, 0.5, 1.0, -16, 0, 0])  # shear
y = keras.ops.image.affine_transform(x, transform)
y.shape
(64, 80, 3)
x = np.random.random((2, 3, 64, 80)) # batch of 2 RGB images
transform = np.array(
    [
        [1.5, 0, -20, 0, 1.5, -16, 0, 0],  # zoom
        [1, 0, -20, 0, 1, -16, 0, 0],  # translation
    ]
)
y = keras.ops.image.affine_transform(x, transform,
    data_format="channels_first")
y.shape
(2, 3, 64, 80)

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/ops/image/affine_transform

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API