从输入图像张量中提取裁剪并调整它们的大小。
用法
tf.image.crop_and_resize(
image, boxes, box_indices, crop_size, method='bilinear',
extrapolation_value=0.0, name=None
)
参数
-
image
形状为[batch, image_height, image_width, depth]
的 4-D 张量。image_height
和image_width
都需要为正。 -
boxes
形状为[num_boxes, 4]
的二维张量。张量的第i
行指定了box_ind[i]
图像中框的坐标,并在规范化坐标[y1, x1, y2, x2]
中指定。y
的归一化坐标值映射到y * (image_height - 1)
处的图像坐标,因此归一化图像高度的[0, 1]
区间映射到图像高度坐标中的[0, image_height - 1]
。我们确实允许y1
>y2
,在这种情况下,采样的裁剪是原始图像的 up-down 翻转版本。宽度尺寸的处理方式类似。[0, 1]
范围之外的归一化坐标是允许的,在这种情况下,我们使用extrapolation_value
来推断输入图像值。 -
box_indices
形状为[num_boxes]
的一维张量,在[0, batch)
中具有 int32 值。box_ind[i]
的值指定第i
框所指的图像。 -
crop_size
2 个元素的一维张量,size = [crop_height, crop_width]
。所有裁剪的图像块都将调整为此大小。不保留图像内容的纵横比。crop_height
和crop_width
都需要为正。 -
method
一个可选字符串,指定调整大小的采样方法。它可以是"bilinear"
或"nearest"
并且默认为"bilinear"
。目前支持两种采样方法:双线性和最近邻。 -
extrapolation_value
可选的float
。默认为0.0
。适用时用于外推的值。 -
name
操作的名称(可选)。
返回
-
形状为
[num_boxes, crop_height, crop_width, depth]
的 4-D 张量。
从输入图像张量中提取裁剪,并使用双线性采样或最近邻采样(可能会更改纵横比)将它们调整为由 crop_size
指定的通用输出大小。这比 crop_to_bounding_box
操作更通用,后者从输入图像中提取固定大小的切片,并且不允许调整大小或更改纵横比。
在 boxes
的边界框位置定义的位置处从输入 image
返回具有 crops
的张量。裁剪后的框都被调整大小(使用双线性或最近邻插值)到固定的 size = [crop_height, crop_width]
。结果是一个 4-D 张量 [num_boxes, crop_height, crop_width, depth]
。调整大小是角对齐的。特别是,如果 boxes = [[0, 0, 1, 1]]
,该方法将给出与使用 tf.compat.v1.image.resize_bilinear()
或 tf.compat.v1.image.resize_nearest_neighbor()
(取决于 method
参数)和 align_corners=True
相同的结果。
例子:
import tensorflow as tf
BATCH_SIZE = 1
NUM_BOXES = 5
IMAGE_HEIGHT = 256
IMAGE_WIDTH = 256
CHANNELS = 3
CROP_SIZE = (24, 24)
image = tf.random.normal(shape=(BATCH_SIZE, IMAGE_HEIGHT, IMAGE_WIDTH,
CHANNELS) )
boxes = tf.random.uniform(shape=(NUM_BOXES, 4))
box_indices = tf.random.uniform(shape=(NUM_BOXES,), minval=0,
maxval=BATCH_SIZE, dtype=tf.int32)
output = tf.image.crop_and_resize(image, boxes, box_indices, CROP_SIZE)
output.shape #=> (5, 24, 24, 3)
相关用法
- Python tf.image.crop_to_bounding_box用法及代码示例
- Python tf.image.convert_image_dtype用法及代码示例
- Python tf.image.central_crop用法及代码示例
- Python tf.image.random_brightness用法及代码示例
- Python tf.image.pad_to_bounding_box用法及代码示例
- Python tf.image.adjust_hue用法及代码示例
- Python tf.image.random_contrast用法及代码示例
- Python tf.image.rot90用法及代码示例
- Python tf.image.random_hue用法及代码示例
- Python tf.image.flip_left_right用法及代码示例
- Python tf.image.stateless_random_flip_up_down用法及代码示例
- Python tf.image.random_saturation用法及代码示例
- Python tf.image.extract_glimpse用法及代码示例
- Python tf.image.flip_up_down用法及代码示例
- Python tf.image.stateless_random_jpeg_quality用法及代码示例
- Python tf.image.psnr用法及代码示例
- Python tf.image.stateless_random_hue用法及代码示例
- Python tf.image.rgb_to_yiq用法及代码示例
- Python tf.image.stateless_random_crop用法及代码示例
- Python tf.image.resize_with_crop_or_pad用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.image.crop_and_resize。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。