Согласно этой дискуссии о стекопотоках на scipy.ndi.distance_transform_edt()
, функция будет вычислять ближайшие евклидовы расстояния для элементов ненулевой матрицы до нулевых элементов.
Проблема в том, что ваша функция spiral()
возвращает матрицу, которая отлична от нуля (в точности равна 1), где кривая существует, а 0 - везде. Чтобы исправить это:
import scipy.ndimage as ndi
# The original spiral curve, with 1's where the curve is defined, else 0
s = spiral()
# Transformed data: 0's representing the curve, with 1's everywhere else
TS= 1-s
transformed = ndi.distance_transform_edt(TS)
Эти усилия приводят к следующему сюжету: