Redimensionar images para size usando el especificado method.

tf.image.resize(
    images, size, method=ResizeMethod.BILINEAR, preserve_aspect_ratio=False,
    antialias=False, name=None)

Las imágenes redimensionadas se distorsionarán si su relación de aspecto original no es la misma que size. Para evitar distorsiones ver tf.image.resize_with_pad.

image = tf.constant([[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,1],])# Add "batch" and "channels" dimensions
image = image[tf.newaxis,..., tf.newaxis]
image.shape.as_list()# [batch, height, width, channels][1,5,5,1]
tf.image.resize(image,[3,5])[0,...,0].numpy()
array([[0.6666667,0.3333333,0.,0.,0.],[0.,0.,1.,0.,0.],[0.,0.,0.,0.3333335,0.6666665]],
      dtype=float32)

Funciona igualmente bien con una sola imagen en lugar de un lote de imágenes:

tf.image.resize(image[0],[3,5]).shape.as_list()[3,5,1]

Cuando antialias es true, el filtro de muestreo suavizará la imagen de entrada e interpolará. Al reducir la resolución de una imagen con suavizado el núcleo del filtro de muestreo se escala para suavizar adecuadamente la señal de imagen de entrada. antialias no tiene ningún efecto al realizar un muestreo superior de una imagen:

a = tf.image.resize(image,[5,10])
b = tf.image.resize(image,[5,10], antialias=True)
tf.reduce_max(abs(a - b)).numpy()0.0

los method argumento espera un elemento del image.ResizeMethod enum, o el string equivalente. Las opciones son:

  • bilinear: Interpolación bilineal. Si antialias es true, se convierte en una función de filtro de sombrero / tienda con radio 1 al reducir la resolución.
  • lanczos3: Kernel de Lanczos con radio 3. Filtro práctico de alta calidad, pero puede tener algún timbre, especialmente en imágenes sintéticas.
  • lanczos5: Kernel de Lanczos con radio 5. Filtro de muy alta calidad pero puede tener un timbre más fuerte.
  • bicubic: Interpolante cúbico de llaves. Equivalente al kernel de Catmull-Rom. Razonablemente buena calidad y más rápido que Lanczos3Kernel, particularmente cuando se realiza un muestreo superior.
  • gaussian: Kernel gaussiano con radio 3, sigma = 1,5 / 3,0.
  • nearest: Interpolación del vecino más cercano.antialias no tiene ningún efecto cuando se utiliza con la interpolación de vecino más cercano.
  • area: Remuestreo suavizado con interpolación de áreas. antialias no tiene ningún efecto cuando se usa con interpolación de área; siempre suaviza.
  • mitchellcubic: Filtro no interpolante cúbico Mitchell-Netravali. Para imágenes sintéticas (especialmente aquellas que carecen de un prefiltrado adecuado), menos timbre que el núcleo cúbico de Keys pero menos nítido.

Nota: Cerca de los bordes de la imagen, el núcleo de filtrado puede estar parcialmente fuera de los límites de la imagen. Para estos píxeles, solo los píxeles de entrada dentro de la imagen se incluirán en la suma del filtro y el valor de salida se normalizará adecuadamente.

El valor de retorno tiene tipo float32, a menos que el method es ResizeMethod.NEAREST_NEIGHBOR, entonces el dtype de retorno es el dtype de images:

nn = tf.image.resize(image,[5,7], method='nearest')
nn[0,...,0].numpy()
array([[1,0,0,0,0,0,0],[0,1,1,0,0,0,0],[0,0,0,1,0,0,0],[0,0,0,0,1,1,0],[0,0,0,0,0,0,1]], dtype=int32)

Con preserve_aspect_ratio=True, la relación de aspecto se conserva, por lo que size es el máximo para cada dimensión:

max_10_20 = tf.image.resize(image,[10,20], preserve_aspect_ratio=True)
max_10_20.shape.as_list()[1,10,10,1]
Args
images Tensor de forma 4-D [batch, height, width, channels] o tensor de forma tridimensional [height, width, channels].
size Un tensor 1-D int32 de 2 elementos: new_height, new_width. El nuevo tamaño de las imágenes.
method Un image.ResizeMethod, o string equivalente. Predeterminado a bilinear.
preserve_aspect_ratio Ya sea para conservar la relación de aspecto. Si esto está configurado, entonces images se cambiará de tamaño a un tamaño que se ajuste size conservando la relación de aspecto de la imagen original. Amplía la imagen si size es más grande que el tamaño actual del image. El valor predeterminado es Falso.
antialias Si se debe utilizar un filtro anti-aliasing al reducir el muestreo de una imagen.
name Un nombre para esta operación (opcional).
Eleva
ValueError si la forma de images es incompatible con los argumentos de forma para esta función
ValueError si size tiene una forma o tipo no válido.
ValueError si se especifica un método de cambio de tamaño no admitido.
Devoluciones
Si images era 4-D, un tensor de forma flotante 4-D [batch, new_height, new_width, channels]. Si images era 3-D, un tensor de forma flotante 3-D [new_height, new_width, channels].