я написал реализацию Гильберта-пеановского кривой заполнения пространства в Python (от Matlab один), чтобы сгладить мой 2D изображение:Гильберта-Пеано кривая для сканирования изображения произвольного размера
def hilbert_peano(n):
if n<=0:
x=0
y=0
else:
[x0, y0] = hilbert_peano(n-1)
x = (1/2) * np.array([-0.5+y0, -0.5+x0, 0.5+x0, 0.5-y0])
y = (1/2) * np.array([-0.5+x0, 0.5+y0, 0.5+y0, -0.5-y0])
return x,y
Тем не менее, классическая Кривая Гильберта-Пеано работает только для многомерного массива, форма которого имеет силу двух (например: 256 * 256 или 512 * 512 в случае 2D-массива (изображение)).
Кто-нибудь знает, как расширить это до массива произвольного размера?
вы пробовали его реализации? – floflo29
Хотя его истинная классическая кривая гильберта основана на мощности 2, так как это фрактал, вы можете также игнорировать за небольшую плату. Но чтобы ответить на ваш вопрос. № – Bytemain
Как бы вы изменили исходную кривую, чтобы избавиться от мощности 2 гипотезы? – floflo29