Вы можете использовать numpy.reshape
:
>>> import numpy as np
>>> from skimage import util
>>> image = np.random.random((6, 6, 6))
>>> blocks = util.view_as_blocks(image, (2, 2, 2))
>>> blocks.shape
(3, 3, 3, 2, 2, 2)
>>> blocks[(0,) * 6] = 3.0
>>> image2 = np.reshape(blocks, (6, 6, 6))
>>> image2[0, 0, 0]
3.0
Но учтите, что view_as_blocks
возвращает представление .Если ваши изменения сделаны на месте, вам даже не нужно менять форму, ваше исходное изображение уже будет изменено:
>>> image[0, 0, 0]
3.0
Если вы хотите избежать этого, используйте view_as_blocks(...).copy()
.