Маска линии в ПИЛ - PullRequest
       6

Маска линии в ПИЛ

0 голосов
/ 09 февраля 2020

У меня есть эта функция, д-р aws кривая Безье:

from random import randint
from PIL import Image

def plot_curve(image, px, py, steps=1000, color=(0, 0, 0)):
    def B(coord, i, j, t):
        if j == 0:
            return coord[i]
        return (B(coord, i, j - 1, t) * (1 - t) +
                B(coord, i + 1, j - 1, t) * t)

    img = image.load()
    for k in range(steps):
        t = float(k) / (steps - 1)
        x = int(B(px, 0, n - 1, t))
        y = int(B(py, 0, n - 1, t))
        try:
            img[x, y] = color
        except IndexError:
            pass



n = 4

for i in range(0,10):
    coord_x = [randint(0, 999), randint(0, 999), randint(0, 999), randint(0, 999)]
    coord_y = [randint(0, 999), randint(0, 999), randint(0, 999), randint(0, 999)]

    image = Image.new("RGBA", (1000, 1000))

    plot_curve(image, coord_x, coord_y)
    name = '{:03d}'.format(i) + "_double_curve" + ".png"
    image.save("./train/" + name)

как бы мне вернуть маску координат этой линии, скажем, 10px с обеих сторон? Я пытался сделать ту же кривую Безье, но с более толстой линией, но я не вижу, как установить ширину линии и затем сохранить координаты?

...