我有一个矩形图像。我需要一种使用PIL或OpenCV的方法将其分成x个像素高的部分。我已经看过表格,但我能找到的只是分割成小块的东西。有人知道如何做到这一点吗?
答案 0 :(得分:0)
以下是执行您所要求的代码:
split_into_rows
函数执行所有实际的拆分,并且是generator。它反复使用裁切方法从图像中提取矩形部分并产生它们。
from PIL import Image
import os
im = Image.open('input_image.png')
def split_into_rows(im, row_height):
y = 0
print(im.height)
while y < im.height:
top_left = (0, y)
bottom_right = (im.width, min(y + row_height, im.height))
yield im.crop((*top_left, *bottom_right))
y += row_height
OUTPUT_DIR = 'output'
for i, row in enumerate(split_into_rows(im, 400)):
save_path = os.path.join(OUTPUT_DIR, f'{i}.png')
row.save(save_path)
print(i)