批量中心裁剪图像 python
时间: 2023-11-09 08:02:36 浏览: 117
在Python中,我们可以使用PIL(Python Imaging Library)或OpenCV库来批量中心裁剪图像。
首先,我们需要安装相关库。对于PIL,可以使用以下命令来安装:
```
pip install Pillow
```
对于OpenCV,可以使用以下命令进行安装:
```
pip install opencv-python
```
接下来,我们需要创建一个函数来进行图像的中心裁剪。以下是一个示例函数:
```python
from PIL import Image
def center_crop_image(image, new_width, new_height):
width, height = image.size
left = (width - new_width) // 2
top = (height - new_height) // 2
right = (width + new_width) // 2
bottom = (height + new_height) // 2
cropped_image = image.crop((left, top, right, bottom))
return cropped_image
```
然后,我们可以编写一个批量中心裁剪图像的函数。以下是一个示例函数:
```python
import os
def batch_center_crop_images(input_dir, output_dir, new_width, new_height):
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename in os.listdir(input_dir):
if filename.endswith(".jpg") or filename.endswith(".png"):
image_path = os.path.join(input_dir, filename)
image = Image.open(image_path)
cropped_image = center_crop_image(image, new_width, new_height)
output_path = os.path.join(output_dir, filename)
cropped_image.save(output_path)
```
在上述函数中,我们首先检查输出目录是否存在,如果不存在则创建。然后,我们遍历输入目录中的所有图像文件,并使用`center_crop_image`函数对每个图像进行中心裁剪。最后,我们将裁剪后的图像保存到输出目录中。
最后,我们调用批量中心裁剪图像的函数,并传入输入目录、输出目录以及所需的裁剪尺寸。以下是一个示例调用:
```python
input_directory = "input"
output_directory = "output"
new_width = 200
new_height = 200
batch_center_crop_images(input_directory, output_directory, new_width, new_height)
```
上述示例将从名为"input"的文件夹中读取所有图像文件,并将裁剪后的图像保存到名为"output"的文件夹中。裁剪尺寸为200x200。
希望以上解答能对你有所帮助!
阅读全文