📜  使用 OpenCV-Python 调整多个图像的大小

📅  最后修改于: 2022-05-13 01:55:17.892000             🧑  作者: Mango

使用 OpenCV-Python 调整多个图像的大小

在本文中,我们将使用 OpenCV 库编写一个Python脚本来调整多个图像的大小并将它们保存为图像文件。调整图像大小是指图像的增长。测量最适合使用多个图像和机器学习应用程序。它有助于减少图像中的像素数量,并且有几个好处,例如它可以减少神经网络训练时间,因为图像中的像素数量大大增加了输入节点的数量,这也提高了模型难度。

方法:

  • 首先,将所需的库加载到Python文件(argparse、OpenCV 等)中。
  • 我们正在使用argparse()函数来获取我们需要执行调整大小的图像目录的路径。
  • 使用 for 循环迭代目录中的每个图像
  • 使用cv2.imread()函数图像加载到变量中。
  • 定义调整大小比例并设置计算的高度和宽度。
  • 使用cv2.resize()函数调整图像大小。
  • 使用cv2.imwrite()函数将输出文件放在输出文件夹中。

Images 文件夹中的所有图像都将被调整大小并保存在输出文件夹中。

下面是实现:

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")


在保存此Python脚本的文件夹中打开终端并键入以下命令。

python resize.py --image path/to/images/folder/

输出: