Python使用OpenCV读取文件夹下的所有图片

图片处理是计算机视觉中重要的一环。在处理图片时,我们经常需要读取文件夹下的所有图片,并对其进行进一步的处理。本文将介绍如何使用Python和OpenCV库来读取文件夹下的所有图片,并展示一些常见的图片处理操作。

准备工作

在开始之前,我们需要确保已经安装了Python和OpenCV库。如果还没有安装,可以按照以下步骤进行安装:

  1. 安装Python:从Python官方网站(

  2. 安装OpenCV库:在命令行中运行以下命令来安装OpenCV库。

pip install opencv-python

读取文件夹下的所有图片

有了准备工作之后,我们现在可以开始编写代码来读取文件夹下的所有图片了。首先,我们需要导入必要的库。

import os
import cv2

接下来,我们定义一个函数来读取文件夹下的所有图片。

def read_images_from_folder(folder):
    images = []
    for filename in os.listdir(folder):
        if filename.endswith(".jpg") or filename.endswith(".png"):
            img = cv2.imread(os.path.join(folder, filename))
            if img is not None:
                images.append(img)
    return images

在这个函数中,我们首先创建一个空列表images来存储读取到的图片。然后,我们使用os.listdir函数来获取文件夹下的所有文件名。通过判断文件名的后缀是否为".jpg"或".png",我们可以筛选出所有的图片文件。对于每个图片文件,我们使用cv2.imread函数来读取图片,并将其添加到images列表中。最后,我们返回images列表。

完成了读取图片的函数之后,我们可以调用它来读取文件夹下的所有图片了。

folder = "path/to/folder"
images = read_images_from_folder(folder)
print("Total images:", len(images))

请将"path/to/folder"替换为实际的文件夹路径。运行代码后,您将看到输出的总图片数量。

图片处理操作

读取图片之后,我们可以对其进行各种图片处理操作。在这里,我们将展示一些常见的图片处理操作。

缩放图片

缩放图片是一种常见的图片处理操作,它可以改变图片的大小。下面的代码演示了如何使用cv2.resize函数来缩放图片。

resized_images = []
for img in images:
    resized_img = cv2.resize(img, (400, 300))
    resized_images.append(resized_img)

在这个代码中,我们使用cv2.resize函数来将图片缩放为宽度400像素、高度300像素的大小。缩放后的图片将被添加到resized_images列表中。

灰度化图片

灰度化图片是将彩色图片转换为灰度图片的过程。下面的代码演示了如何使用cv2.cvtColor函数将彩色图片转换为灰度图片。

gray_images = []
for img in images:
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    gray_images.append(gray_img)

在这个代码中,我们使用cv2.cvtColor函数将图片从BGR颜色空间转换为灰度颜色空间。转换后的灰度图片将被添加到gray_images列表中。

图片显示

最后,我们可以使用cv2.imshow函数来显示图片。下面的代码演示了如何显示处理后的图片。

for img in images:
    cv2.imshow("Image", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

在这个代码中,我们使用cv2.imshow函数来显示每个图片。然后,我们使用cv2.waitKey函数来等待用户按下任意键。最后,使用cv2.destroyAllWindows函数来关闭图像窗口。

总结

本文介绍了如何使用Python和OpenCV库来读取文件夹下的所有图片,并展示了一些常见的图片处理操作。通过编写简单的代码,我们可以轻松地读取并处理大量的图片。希望本文对您有所帮助!