У меня был вопрос о реализации метода scipy ndimage.rotate, конкретно касающегося того, как он на самом деле работает при повороте массива на произвольную величину, и сохраняет ли он числа, содержащиеся в массиве?
Я пытаюсь найти способ вращения некоторых массивов, сохраняя при этом числа в массиве и не теряя никакой информации.
Я пытался протестировать его, инициализируя некоторые массивы с известными формами внутри него, но я заметил, что если вы инициализируете некоторые конкретные формы, такие как кресты, то при повороте на определенную величину крест станет квадратом и я обеспокоен тем, что теряю информацию здесь.
matr_1= [[0, 1, 0, 0, 0, 0],
[1, 1, 1, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0],
[0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 1, 0]]
matr_2= [[0, 0, 1, 0, 0, 0],
[0, 1, 1, 1, 0, 0],
[0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 0],
[0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 1, 0]]
plt.imshow(matr_1)
plt.show()
print("Rotation by 45 degrees")
print(sp.ndimage.rotate(matr_1, 45, reshape=False))
plt.imshow(sp.ndimage.rotate(matr_1,45,reshape=False))
plt.show()
print("Rotation by 55 degrees")
print(sp.ndimage.rotate(matr_2, 90, reshape=False))
plt.imshow(sp.ndimage.rotate(matr_1,90,reshape=False))
Я понимаю, что это может быть проблемой, присущей всем алгоритмам ротации, но я хочу понять, какие операции на самом деле применяются к массивам.