Создать маску по координатам нескольких выпуклых многоугольниковPython

Программы на Python
Anonymous
Создать маску по координатам нескольких выпуклых многоугольников

Сообщение Anonymous »

Мне нужно нарисовать 2D-бинарную маску на основе массива вершин выпуклых многоугольников A.

Код: Выделить всё

import numpy as np

mask = np.zeros((100, 100), dtype=np.int8)

polys = np.array([[[30,32], [36,46], [41,48], [50, 36]],
[[10,32], [16,46], [30,48], [40, 36]],
[[56,44], [58,70], [78,90], [75,34]]], np.int32)
Область пересечения полигонов также должна быть замаскирована. Я знаю, как реализовать это с помощью библиотеки cv2:

Код: Выделить всё

import cv2

for i in polys.tolist():
cv2.fillConvexPoly(mask, np.array(i), 1)

imshow(mask, cmap='gray')
Изображение


Но я не могу понять, как это сделать, используя встроенные операции numpy (без циклов for), чтобы сократить время запуска функции.

Вернуться в «Python»