Я создаю систему обнаружения парковочных мест с помощью камеры видеонаблюдения на Python, где пользователь сможет вручную определять границы каждого парковочного места, чтобы обеспечить максимальную адаптируемость. Сценарий, который позволяет пользователю создавать границы каждого парковочного места, отлично работает и выводит коллекцию фигур в виде массива словарей, каждый словарь содержит координаты x и y каждой точки фигуры как аспекты словаря.
Мне удалось создать многоугольные маски, такие как

, используя следующий код:
Код: Выделить всё
img2 = cap # background image
plain = Image.new('L', (cap.shape[1], cap.shape[0]),0) # plain black image
polygon = [(shapes[i]['x1'], shapes[i]['y1']), (shapes[i]['x2'], shapes[i]['y2']), (shapes[i]['x3'], shapes[i]['y3']), (shapes[i]['x4'], shapes[i]['y4'])]
ImageDraw.Draw(plain).polygon(polygon, outline=1, fill=1)
mask = np.array(plain)
masked_img = cv.bitwise_and(img2, img2, mask = mask)
cv.imshow('d',masked_img)
Это мой код, который я написал на данный момент:
Код: Выделить всё
while True:
while i
Источник: [url]https://stackoverflow.com/questions/78158236/how-do-i-apply-a-polygon-mask-to-a-video-feed-in-python-using-opencv[/url]