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

📅  最后修改于: 2023-12-03 14:49:44.282000             🧑  作者: Mango

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

本文介绍如何使用 OpenCV-Python 对多个图像进行大小调整。我们将使用以下步骤:

  1. 导入必要的库和图像
  2. 定义调整大小功能
  3. 调用调整大小函数并保存结果
导入必要的库和图像

首先,我们需要导入必要的库和图像。在本例中,我们将使用 OpenCV-Python 来处理图像。

import cv2
import os

# 定义要处理的图像的路径
img_path = './images/'

# 读取所有要处理的图像
image_files = os.listdir(img_path)

# 创建一个空列表来存储所有图像
images = []

# 循环读取所有图像并将其添加到列表中
for image_file in image_files:
    image = cv2.imread(os.path.join(img_path, image_file))
    images.append(image)

在上面的代码中,我们首先定义了要处理的图像的路径,然后使用 os.listdir() 函数列出该目录中的所有文件。接下来,我们创建一个空列表来存储所有图像,并循环读取所有图像并将其添加到列表中。

定义调整大小功能

接下来,我们将定义一个函数来调整图像的大小。在这个函数中,我们将使用 OpenCV-Python 提供的 cv2.resize() 函数来调整图像的大小。该函数需要三个参数:源图像、目标图像大小和插值方法。

def resize_images(images, size=(500, 500)):
    """
    对一组图像进行大小调整
    :param images: 图像列表
    :param size: 调整后的图像大小
    :return: 调整后的图像列表
    """
    resized_images = []
    for image in images:
        resized_image = cv2.resize(image, size)
        resized_images.append(resized_image)
    return resized_images

在上面的代码中,我们定义了一个名为 resize_images() 的函数,该函数使用 cv2.resize() 函数实现图像的大小调整。该函数使用两个参数:图像列表和调整后的图像大小。我们首先创建一个空列表来存储所有调整后的图像,然后循环遍历输入的图像列表并将每个图像调整为指定的大小。最后,我们将每个调整后的图像添加到 resized_images 列表中。

调用调整大小函数并保存结果

现在,我们已经定义了一个可以调整图像大小的函数。接下来,我们将调用函数并保存结果。

# 调整图像大小
resized_images = resize_images(images)

# 保存调整后的图像
for idx, image in enumerate(resized_images):
    save_path = os.path.join(img_path, f'resized_image_{idx}.jpg')
    cv2.imwrite(save_path, image)

在上面的代码中,我们调用了 resize_images() 函数并传递了所有要处理的图像。函数将返回所有调整后的图像,并存储在 resized_images 变量中。接下来,我们循环遍历所有调整后的图像并将其保存到磁盘上。我们使用 cv2.imwrite() 函数来保存图像。该函数需要两个参数:要保存的图像路径和要保存的图像对象。在本例中,我们使用 os.path.join() 函数来将文件名和目录路径合并,然后将图像对象作为第二个参数传递给 cv2.imwrite() 函数。

完整代码
import cv2
import os

# 定义要处理的图像的路径
img_path = './images/'

# 读取所有要处理的图像
image_files = os.listdir(img_path)

# 创建一个空列表来存储所有图像
images = []

# 循环读取所有图像并将其添加到列表中
for image_file in image_files:
    image = cv2.imread(os.path.join(img_path, image_file))
    images.append(image)


def resize_images(images, size=(500, 500)):
    """
    对一组图像进行大小调整
    :param images: 图像列表
    :param size: 调整后的图像大小
    :return: 调整后的图像列表
    """
    resized_images = []
    for image in images:
        resized_image = cv2.resize(image, size)
        resized_images.append(resized_image)
    return resized_images
    

# 调整图像大小
resized_images = resize_images(images)

# 保存调整后的图像
for idx, image in enumerate(resized_images):
    save_path = os.path.join(img_path, f'resized_image_{idx}.jpg')
    cv2.imwrite(save_path, image)

以上是使用 OpenCV-Python 调整多个图像大小的完整代码。我们介绍了如何使用 cv2.resize() 函数调整图像的大小,并通过定义一个函数来一次性调整所有图像。