En este artículo, vamos a escribir un script de python utilizando la biblioteca OpenCV para cambiar el tamaño de varias imágenes y guardarlas como un archivo de imagen. Cambiar el tamaño de la imagen se refiere al crecimiento de las imágenes. La medición funciona mejor en el uso de múltiples imágenes y en aplicaciones de aprendizaje automático. Ayuda a reducir la cantidad de píxeles de una imagen y eso tiene varios beneficios, por ejemplo, puede reducir el tiempo de entrenamiento de la red neuronal ya que la cantidad de píxeles en la imagen aumenta considerablemente la cantidad de Nodes de entrada, lo que también mejora la dificultad del modelo.
Acercarse:
- En primer lugar, cargue las bibliotecas requeridas en un archivo de Python (argparse, OpenCV, etc.).
- Estamos usando la función argparse() para obtener la ruta del directorio de imágenes en el que necesitamos realizar el cambio de tamaño.
- Use for loop para iterar cada imagen en el directorio.
- Cargue la imagen en una variable usando la función cv2.imread() .
- Defina una escala de cambio de tamaño y establezca la altura y el ancho calculados.
- Cambie el tamaño de la imagen usando la función cv2.resize() .
- Coloque el archivo de salida dentro de la carpeta de salida usando la función cv2.imwrite() .
Todas las imágenes dentro de la carpeta Imágenes cambiarán de tamaño y se guardarán en una carpeta de salida.
A continuación se muestra la implementación:
Python3
# Required Libraries import cv2 import numpy as np from os import listdir from os.path import isfile, join from pathlib import Path import argparse import numpy # Argument parsing variable declared ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required=True, help="Path to folder") args = vars(ap.parse_args()) # Find all the images in the provided images folder mypath = args["image"] onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] images = numpy.empty(len(onlyfiles), dtype=object) # Iterate through every image # and resize all the images. for n in range(0, len(onlyfiles)): path = join(mypath, onlyfiles[n]) images[n] = cv2.imread(join(mypath, onlyfiles[n]), cv2.IMREAD_UNCHANGED) # Load the image in img variable img = cv2.imread(path, 1) # Define a resizing Scale # To declare how much to resize resize_scaling = 50 resize_width = int(img.shape[1] * resize_scaling/100) resize_hieght = int(img.shape[0] * resize_scaling/100) resized_dimensions = (resize_width, resize_hieght) # Create resized image using the calculated dimensions resized_image = cv2.resize(img, resized_dimensions, interpolation=cv2.INTER_AREA) # Save the image in Output Folder cv2.imwrite( 'output/' + str(resize_width) + str(resize_hieght) + str(n) + '_resized.jpg', resized_image) print("Images resized Successfully")
Abra el terminal en la carpeta donde se guarda este script de Python y escriba el siguiente comando.
python resize.py --image path/to/images/folder/
Producción: