У меня есть эта функция, д-р 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 с обеих сторон? Я пытался сделать ту же кривую Безье, но с более толстой линией, но я не вижу, как установить ширину линии и затем сохранить координаты?