Python使用OpenCV读取文件夹下的所有图片
图片处理是计算机视觉中重要的一环。在处理图片时,我们经常需要读取文件夹下的所有图片,并对其进行进一步的处理。本文将介绍如何使用Python和OpenCV库来读取文件夹下的所有图片,并展示一些常见的图片处理操作。
准备工作
在开始之前,我们需要确保已经安装了Python和OpenCV库。如果还没有安装,可以按照以下步骤进行安装:
-
安装Python:从Python官方网站(
-
安装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库来读取文件夹下的所有图片,并展示了一些常见的图片处理操作。通过编写简单的代码,我们可以轻松地读取并处理大量的图片。希望本文对您有所帮助!