Этот вопрос является небольшой копией предыдущего ( Фильтр 2D-массива и координаты возврата из промежуточного ), который, как я думал, работал отлично, но неожиданная ошибка возникла. Я пытаюсь создать гексагональные шаблоны в 2D-массиве, используя следующие ядра:
k1 = np.array([[1, 0, 1],
[0, 1, 0],
[0, 1, 0]])
k2 = np.array([[0, 1, 0],
[0, 1, 0],
[1, 0, 1]])
Код в предыдущем ответе дал 2D-массив ниже:
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]
[0. 0. 0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]
[0. 0. 0. 0. 1. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]
[0. 0. 0. 2. 3. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]
[0. 0. 0. 3. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]
[0. 0. 0. 0. 2. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]]
1 представляет точки Я добавил. 2 и 3 представляют точки, которые были определены кодом, но точки, помеченные как 3, неверны, потому что я хочу только координаты для других точек в ядре, которые представлены 1.
Я могу видеть, как алгоритм определил эти точки, но я бы хотел, чтобы это работало так, чтобы центральное значение ядра присутствовало до того, как оно определит точки, которые я могу использовать в массиве. Я пытался инвертировать ядра и несколько других подходов, но не смог найти решение. Вся помощь очень ценится