python把图像批量裁剪的代码
时间: 2023-11-08 17:04:13 浏览: 26
很高兴为您解答,以下是Python批量裁剪图像的示例代码:
```python
import os
from PIL import Image
# 设置裁剪尺寸
size = 224, 224
# 设置裁剪起始位置
left, top = 0, 0
# 遍历图片目录
for root, dirs, files in os.walk("./image_dir"):
for file in files:
# 判断文件类型是否为图片
if file.endswith(".jpg") or file.endswith(".png"):
# 打开图片
im = Image.open(os.path.join(root, file))
# 获取图片尺寸
width, height = im.size
# 计算裁剪结束位置
right, bottom = min(width, left+size[0]), min(height, top+size[1])
# 裁剪图片
im.crop((left, top, right, bottom)).save(os.path.join(root, "crop_"+file))
```
此代码可以批量裁剪图片,将结果保存到原目录下,文件名前加上`crop_`前缀。如有其他问题,请随时咨询。
相关问题
python gdal批量随机裁剪遥感影像代码
以下是使用Python GDAL库进行批量随机裁剪遥感影像的示例代码:
```python
import os
import random
from osgeo import gdal
# 设置输入和输出路径
input_path = 'path_to_input_directory'
output_path = 'path_to_output_directory'
# 设置裁剪后的图像大小和数量
crop_size = 256
num_crops = 10
# 遍历输入路径下的所有遥感影像文件
for filename in os.listdir(input_path):
if not filename.endswith('.tif'):
continue
# 打开遥感影像文件
dataset = gdal.Open(os.path.join(input_path, filename))
# 获取遥感影像文件的大小
width = dataset.RasterXSize
height = dataset.RasterYSize
# 随机裁剪遥感影像文件并保存为新文件
for i in range(num_crops):
x = random.randint(0, width - crop_size)
y = random.randint(0, height - crop_size)
output_filename = os.path.splitext(filename)[0] + '_crop_' + str(i) + '.tif'
output_path_filename = os.path.join(output_path, output_filename)
gdal.Translate(output_path_filename, dataset, srcWin=[x, y, crop_size, crop_size])
# 关闭遥感影像文件
dataset = None
```
这个代码将遍历输入路径中的所有遥感影像文件,并随机裁剪它们为指定数量的图像。裁剪后的图像大小为256×256像素。裁剪后的图像将保存在输出路径中,并按原始文件的名称添加"_crop_"和数字以区分它们。
python图片批量裁剪并按顺序保存
你可以使用Python的PIL库(Pillow)来批量裁剪图片并按顺序保存。以下是一个示例代码:
```python
from PIL import Image
import os
# 指定图片文件夹路径和目标文件夹路径
image_folder = 'path/to/image/folder'
output_folder = 'path/to/output/folder'
# 遍历图片文件夹中的所有图片
for filename in os.listdir(image_folder):
if filename.endswith('.jpg') or filename.endswith('.png'): # 仅处理特定格式的图片
# 打开图片
image_path = os.path.join(image_folder, filename)
image = Image.open(image_path)
# 裁剪图片(这里假设裁剪出的区域是左上角的 100x100 区域)
cropped_image = image.crop((0, 0, 100, 100))
# 保存裁剪后的图片到目标文件夹中,按原始文件名保存
output_path = os.path.join(output_folder, filename)
cropped_image.save(output_path)
print('图片裁剪并保存完成!')
```
在上述代码中,你需要将 `path/to/image/folder` 替换为存储图片的文件夹路径,将 `path/to/output/folder` 替换为保存裁剪后图片的目标文件夹路径。裁剪的区域可以根据你的需求进行调整。
请确保你已经在Python环境中安装了Pillow库(可以通过 `pip install Pillow` 命令进行安装)。运行代码后,裁剪后的图片将按照原始文件名保存在目标文件夹中。