Resize Multiple Images using OpenCV-Python - GeeksforGeeks

26 Sep, 2021
In this article, we are going to write a python script using the OpenCV library to Resize Multiple Images and save them as an image file. Resizing the image refers to the growth of the images. Measurement works best in the use of multiple images and in machine learning applications. It helps to reduce the number of pixels from an image and that has several benefits e.g. It can reduce neural network training time as the number of pixels in the image greatly increases the number of input nodes which also improves the model difficulty.
Approach:
Firstly, load the required libraries into a Python file (argparse, OpenCV, etc.).
We are using argparse() function to get the path of the directory of images on which we need to perform the resizing.
Use for loop to iterate every image in the directory.
Load image in a variable using cv2.imread() function.
Define a resizing scale and set the calculated height and width.
Resize the image using cv2.resize() function.
Place the output file inside the output folder using cv2.imwrite() function.
All the images inside the Images folder will be resized and will be saved in an output folder.
Below is the implementation:
Python3
# Required Librariesimport cv2import numpy as npfrom os import listdirfrom os.path import isfile, joinfrom pathlib import Pathimport argparseimport numpy # Argument parsing variable declaredap = 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 foldermypath = 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")
Open the terminal in the folder where this Python Script is saved and type the below command.
python resize.py --image path/to/images/folder/
Output:
anikaseth98
Picked
Python-OpenCV
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Check if element exists in list in Python
How To Convert Python Dictionary To JSON?
Python Classes and Objects
How to drop one or multiple columns in Pandas Dataframe
Python | Get unique values from a list
Defaultdict in Python
Python | os.path.join() method
Create a directory in Python
Python | Pandas dataframe.groupby()