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

Функция image.crop_to_bounding_box

Функция crop_to_bounding_box обрезает изображение до заданной прямоугольной области. Первым параметром передается тензор изображения, вторым и третьим - координаты верхнего левого угла рамки по вертикали и горизонтали, четвертым и пятым - высота и ширина области обрезки. Изображение может быть трехмерным (высота, ширина, каналы) или четырехмерным (пакет, высота, ширина, каналы).

Синтаксис

tf.image.crop_to_bounding_box( image, offset_height, offset_width, target_height, target_width )

Пример

Давайте обрежем изображение размером 5 на 5 до области, начиная с позиции 1, 1 с высотой 3 и шириной 3:

import tensorflow as tf image = 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] ], dtype=tf.float32) image = tf.expand_dims(image, axis=-1) res = tf.image.crop_to_bounding_box(image, 1, 1, 3, 3) print(res)

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

tf.Tensor( [[[ 7.] [ 8.] [ 9.]] [[12.] [13.] [14.]] [[17.] [18.] [19.]]], shape=(3, 3, 1), dtype=float32)

Пример

Давайте обрежем цветное изображение с тремя каналами:

import tensorflow as tf image = 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], [28, 29, 30], [31, 32, 33], [34, 35, 36]], [[37, 38, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48]] ], dtype=tf.uint8) res = tf.image.crop_to_bounding_box(image, 1, 1, 2, 2) print(res)

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

tf.Tensor( [[[16 17 18] [19 20 21]] [[28 29 30] [31 32 33]]], shape=(2, 2, 3), dtype=uint8)

Пример

Давайте обрежем пакет из двух изображений:

import tensorflow as tf image = 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, 28], [29, 30, 31, 32] ] ], dtype=tf.float32) image = tf.expand_dims(image, axis=-1) res = tf.image.crop_to_bounding_box(image, 0, 0, 2, 2) print(res)

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

tf.Tensor( [[[[ 1.] [ 2.]] [[ 5.] [ 6.]]] [[[17.] [18.]] [[21.] [22.]]]], shape=(2, 2, 2, 1), dtype=float32)

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

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