欢迎访问宙启技术站
智能推送

使用imutils库中的resize()函数批量调整图像大小

发布时间:2024-01-03 03:37:03

imutils是一个用于图像处理的Python库,其中包含了各种方便的函数和类。其中一个常用的函数是resize(),用于调整图像的大小。

resize()函数的用法如下:

imutils.resize(image, width=None, height=None, inter=None)

其中,image是要调整大小的图像,width和height是要调整的宽度和高度(可以只指定其中一个而将另一个参数设为None),inter是可选的插值方法,默认为cv2.INTER_LINEAR。

下面是一个使用resize()函数批量调整图像大小的例子:

import cv2
import os
import imutils

# 设置输出图像的目录
output_dir = "resized_images"

# 确保输出目录存在,如果不存在则创建
if not os.path.exists(output_dir):
    os.makedirs(output_dir)

# 遍历输入目录中的所有图像文件
input_dir = "input_images"
for filename in os.listdir(input_dir):
    # 读取图像
    image_path = os.path.join(input_dir, filename)
    image = cv2.imread(image_path)
    
    # 调整图像大小为宽度为500像素,并保持原始宽高比
    resized_image = imutils.resize(image, width=500)
    
    # 保存调整后的图像
    output_path = os.path.join(output_dir, filename)
    cv2.imwrite(output_path, resized_image)

上述例子中,假设我们有一个名为"input_images"的目录,其中包含若干个图像文件。程序会读取该目录下的所有图像文件,并使用resize()函数将图像调整为宽度为500像素的大小。然后,调整后的图像会保存在名为"resized_images"的目录中。

这个例子可以很容易地扩展,例如,可以调整图像的高度而保持宽度不变:

# 调整图像大小为高度为300像素,并保持原始宽高比
resized_image = imutils.resize(image, height=300)

还可以同时指定宽度和高度来调整图像的大小,此时插值方法inter将决定调整大小的质量:

# 调整图像大小为宽度为500像素、高度为300像素
# 使用最近邻插值方法
resized_image = imutils.resize(image, width=500, height=300, inter=cv2.INTER_NEAREST)

总之,imutils库中的resize()函数提供了一个简单而方便的方法来调整图像的大小。通过设置所需的宽度和高度参数,可以快速、批量地调整多个图像的大小,并且可以选择不同的插值方法来控制调整大小的质量。这使得resize()函数成为图像处理中一个非常有用的工具。