在Python中进行图像批处理,你可以使用多种库,如Pillow、OpenCV、imageio等。以下是一些示例代码,展示了如何使用这些库进行图像批处理:
使用Pillow库
from PIL import Image
import glob
def resize_images(input_folder, output_folder, size=(300, 300)):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for file in glob.glob(os.path.join(input_folder, "*.jpg")):
img = Image.open(file)
img_resized = img.resize(size)
img_resized.save(os.path.join(output_folder, os.path.basename(file)))
调用函数
resize_images("path/to/input/folder", "path/to/output/folder")
使用OpenCV库
import cv2
import numpy as np
import glob
def process_images(input_folder, output_folder):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for file in glob.glob(os.path.join(input_folder, "*.jpg")):
img = cv2.imread(file)
示例:将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
示例:应用Harris角点检测
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
for i in corners:
x, y = i.ravel()
cv2.circle(img, (x, y), 3, 255, -1)
cv2.imwrite(os.path.join(output_folder, os.path.basename(file)), img)
调用函数
process_images("path/to/input/folder", "path/to/output/folder")
使用imageio库
import imageio
import os
def process_images_with_imageio(input_folder, output_folder):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for file in glob.glob(os.path.join(input_folder, "*.jpg")):
img = imageio.imread(file)
示例:将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
示例:应用Harris角点检测
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
for i in corners:
x, y = i.ravel()
cv2.circle(img, (x, y), 3, 255, -1)
imageio.imwrite(os.path.join(output_folder, os.path.basename(file)), img)
调用函数
process_images_with_imageio("path/to/input/folder", "path/to/output/folder")
以上示例展示了如何使用Pillow、OpenCV和imageio库对图像进行批处理。你可以根据具体需求修改这些示例代码,比如调整图像大小、应用滤镜、进行角点检测等。