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]).
Почему это происходит?
РЕДАКТИРОВАТЬ:
Я попробовал использовать два контура отдельно, и вот что я получить (для первого, второго и обоих контуров соответственно):
Я экспериментирую с drawContours и попробовал это: [code]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) [/code] Я предполагал, что, поскольку я использую Thickness=-1, контуры будут заполнены, и поскольку области перекрываются, в конечном итоге я получу объединение областей. ограничены двумя контурами в cts1.
Однако при печати img1 я вижу 2 значения, которые по-прежнему равны 0 в области перекрытия (img1[3][4] и img1[3][ 5]). Почему это происходит? РЕДАКТИРОВАТЬ: Я попробовал использовать два контура отдельно, и вот что я получить (для первого, второго и обоих контуров соответственно): [img]https://i.stack.imgur.com/8BUUn.png [/img] [img]https://i.stack.imgur.com/Q6mQa.png[/img] [img]https ://i.stack.imgur.com/uLNlo.png[/img]
У меня есть двумерный массив нулей (называемых метками) и список его координат (называемых центрами). Для каждого центра я хотел бы поместить прогрессивное число в кластере 5x5 вокруг него внутри массива меток.
Если два центра расположены настолько...