当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.image.resize_with_crop_or_pad用法及代码示例


将图像裁剪和/或填充到目标宽度和高度。

用法

tf.image.resize_with_crop_or_pad(
    image, target_height, target_width
)

参数

  • image 形状为 [batch, height, width, channels] 的 4-D 张量或形状为 [height, width, channels] 的 3-D 张量。
  • target_height 目标高度。
  • target_width 目标宽度。

抛出

  • ValueError 如果 target_heighttarget_width 为零或负数。

返回

  • 裁剪和/或填充的图像。如果 images 是 4-D,则形状为 [batch, new_height, new_width, channels] 的 4-D 浮点张量。如果 images 是 3-D,则形状为 [new_height, new_width, channels] 的 3-D 浮点张量。

通过集中裁剪图像或用零均匀填充图像,将图像大小调整为目标宽度和高度。

如果 widthheight 分别大于指定的 target_widthtarget_height,则此操作沿该维度集中裁剪。

例如:

image = np.arange(75).reshape(5, 5, 3)  # create 3-D image input
image[:,:,0]  # print first channel just for demo purposes
array([[ 0,  3,  6,  9, 12],
       [15, 18, 21, 24, 27],
       [30, 33, 36, 39, 42],
       [45, 48, 51, 54, 57],
       [60, 63, 66, 69, 72]])
image = tf.image.resize_with_crop_or_pad(image, 3, 3)  # crop
# print first channel for demo purposes; centrally cropped output
image[:,:,0]
<tf.Tensor:shape=(3, 3), dtype=int64, numpy=
array([[18, 21, 24],
       [33, 36, 39],
       [48, 51, 54]])>

如果 widthheight 分别小于指定的 target_widthtarget_height,则此操作沿该维度居中填充 0。

例如:

image = np.arange(1, 28).reshape(3, 3, 3)  # create 3-D image input
image[:,:,0]  # print first channel just for demo purposes
array([[ 1,  4,  7],
       [10, 13, 16],
       [19, 22, 25]])
image = tf.image.resize_with_crop_or_pad(image, 5, 5)  # pad
# print first channel for demo purposes; we should see 0 paddings
image[:,:,0]
<tf.Tensor:shape=(5, 5), dtype=int64, numpy=
array([[ 0,  0,  0,  0,  0],
       [ 0,  1,  4,  7,  0],
       [ 0, 10, 13, 16,  0],
       [ 0, 19, 22, 25,  0],
       [ 0,  0,  0,  0,  0]])>

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.image.resize_with_crop_or_pad。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。