Cambiar el tamaño de varias imágenes usando OpenCV-Python

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:

Publicación traducida automáticamente

Artículo escrito por idevesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *