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

Функция image.random_crop

Функция image.random_crop применяется к изображению и случайным образом вырезает из него фрагмент заданного размера. Первым параметром функция принимает тензор изображения, вторым - размер вырезаемой области. Функция возвращает тензор с обрезанным изображением.

Случайная позиция обрезки выбирается внутри исходного изображения. Если размер запрашиваемой области превышает размер изображения, функция вызывает ошибку.

Синтаксис

tf.image.random_crop(value, size, [seed])

Пример

Давайте создадим изображение и вырежем из него случайный фрагмент размером 2 на 2:

import tensorflow as tf tf.random.set_seed(0) t = tf.constant([ [[1], [2], [3], [4]], [[5], [6], [7], [8]], [[9], [10], [11], [12]], [[13], [14], [15], [16]] ]) res = tf.image.random_crop(t, size=[2, 2, 1]) print(res)

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

tf.Tensor( [[[ 1] [ 2]] [[ 5] [ 6]]], shape=(2, 2, 1), dtype=int32)

Пример

Давайте применим функцию к цветному изображению с тремя каналами и вырежем фрагмент размером 2 на 2:

import tensorflow as tf tf.random.set_seed(0) t = tf.constant([ [[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]], [[19, 20, 21], [22, 23, 24], [25, 26, 27]] ]) res = tf.image.random_crop(t, size=[2, 2, 3]) print(res)

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

tf.Tensor( [[[ 1 2 3] [ 4 5 6]] [[10 11 12] [13 14 15]]], shape=(2, 2, 3), dtype=int32)

Пример

Давайте передадим параметр seed для воспроизводимости результата:

import tensorflow as tf t = tf.constant([ [[1], [2], [3], [4]], [[5], [6], [7], [8]], [[9], [10], [11], [12]], [[13], [14], [15], [16]] ]) res1 = tf.image.random_crop(t, size=[2, 2, 1], seed=1) res2 = tf.image.random_crop(t, size=[2, 2, 1], seed=1) print(res1) print(res2)

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

tf.Tensor( [[[ 1] [ 2]] [[ 5] [ 6]]], shape=(2, 2, 1), dtype=int32) tf.Tensor( [[[ 1] [ 2]] [[ 5] [ 6]]], shape=(2, 2, 1), dtype=int32)

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

  • функцию central_crop,
    которая вырезает центральную часть изображения
  • функцию crop_to_bounding_box,
    которая обрезает изображение по заданным координатам
  • функцию resize_with_crop_or_pad,
    которая изменяет размер изображения обрезкой или дополнением
  • функцию RandomCrop,
    которая выполняет случайную обрезку как слой Keras
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить