Рассмотрите изображение ниже:
![enter image description here](https://i.stack.imgur.com/AHXDA.png)
Я пытаюсь создать «простой» метод Python, который может обрезать изображения как столбцы таблицы. Так, например, пользователь может определить на изображении, как оно должно быть обрезано, например:
![enter image description here](https://i.stack.imgur.com/FZ5KN.png)
Здесь пользователь определил три области на изображении, которые должны быть обрезаны, в результате чего получится 4 столбца.
Я пытаюсь использовать PIL
, чтобы обрезать его, но, насколько я вижу, он принимает (left, upper, right, lower) tuple
:
Учтите, мои столбцы хранятся в формате JSON, например:
#COLUMNS:
{"1": {"position":"20"}, "2": {"position":"50"}, "3": {"position":"70"}}
Таким образом, выше position
относится к позиции с левой стороны изображения, по оси X.
Мне трудно решить эту проблему - как я могу обрезать, основываясь только на приведенной выше информации.
Я предполагаю, что мне понадобится полная высота изображения в качестве параметра.
Это то, что я имею до сих пор:
def columnsFromImage():
img = Image.open(img_file)
image_name = img.filename
width, height = img.size
for col in COLUMNS:
col = COLUMNS.get(str(col))
area = () #This is where I am stuck
output_image = img.crop(area)
output_image.save(image_name)
Как видите, я застрял в определении области. Я не могу понять, как рассчитать позиции столбцов и обрезать на основе этого.