帮我写一个将png图片分成patch_size大小的块的python程序,其中要有原始图片的路径,处理后的图片集的路径,图片通过指定路径输入...
时间: 2024-03-21 12:44:10 浏览: 11
好的,以下是一个将png图片分成patch_size大小的块的Python程序:
```python
from PIL import Image
import os
def create_patch(image_path, patch_size, output_path):
"""
将图片分成patch_size大小的块,并保存到指定路径
:param image_path: 原始图片的路径
:param patch_size: 块的大小
:param output_path: 处理后的图片集的路径
"""
# 打开图片
image = Image.open(image_path)
# 获取图片的宽和高
width, height = image.size
# 计算横向和纵向的块数
num_patches_wide = width // patch_size
num_patches_high = height // patch_size
# 循环遍历每一个块
for i in range(num_patches_wide):
for j in range(num_patches_high):
# 计算当前块的左上角和右下角的坐标
left = i * patch_size
top = j * patch_size
right = left + patch_size
bottom = top + patch_size
# 裁剪出当前块
patch = image.crop((left, top, right, bottom))
# 保存当前块
patch.save(os.path.join(output_path, f"{i}_{j}.png"))
```
使用示例:
```python
# 原始图片的路径
image_path = "path/to/image.png"
# 块的大小
patch_size = 128
# 处理后的图片集的路径
output_path = "path/to/output"
# 执行分块操作
create_patch(image_path, patch_size, output_path)
```
这个程序会将原始图片分成大小为128x128的块,并保存到指定路径。每个块的文件名都是以块的左上角的像素坐标命名的。