Python, OpenCV – рисование контуров перекрывающихся областей, некоторые пиксели исключены?Python

Программы на Python
Гость
Python, OpenCV – рисование контуров перекрывающихся областей, некоторые пиксели исключены?

Сообщение Гость »

Я экспериментирую с drawContours и попробовал это:

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

def fix_format(cts):
return [np.asarray(np.round(ct), np.int32)[:, :, np.newaxis] for ct in cts]

# these are 2 overlapping rectangular regions
cts1 = [
[[1, 1], [6, 1], [6, 4], [1,4]],
[[3, 2], [7, 2], [7, 7], [3,7]]
]
img1 = cv2.drawContours(np.zeros([10, 10]), fix_format(cts1), contourIdx=-1, color=1, thickness=-1)
Я предполагал, что, поскольку я использую Thickness=-1, контуры будут заполнены, и поскольку области перекрываются, в конечном итоге я получу объединение областей. ограничены двумя контурами в cts1.

Однако при печати img1 я вижу 2 значения, которые по-прежнему равны 0 в области перекрытия (img1[3][4] и img1[3][ 5]).
Почему это происходит?
РЕДАКТИРОВАТЬ:
Я попробовал использовать два контура отдельно, и вот что я получить (для первого, второго и обоих контуров соответственно):
Изображение
Изображение
Изображение


Источник: https://stackoverflow.com/questions/781 ... e-excluded

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