Если вы не нарезаете последний индекс (т.е. делаете image[:, :, 1]
), тогда все должно работать нормально:
import numpy as np
from PIL import Image
import scipy.misc as smc
image = np.array(Image.open("FLAIR-148.png"))
test_image = image[:, :, 1]
smc.imsave('out.png', test_image)
По сути, scipy.misc.imsave
не знает, что делать с массивом формы (M, N, 1)
. Однако он знает, что должен сохранить массив формы (M, N)
в виде изображения в градациях серого.
Вам также может понадобиться преобразовать массив в uint8
, чтобы обеспечить согласованные результаты. Вот полный минимальный пример:
import scipy.misc as smc
# get the test image as an array
img = smc.face()
# slice test image
img = img[:, :, 1]
# convert to uint8
img = img.astype('uint8')
# save
smc.imsave('test.png', img)
Выход:
Протест
scipy.misc.imsave
устарело . Вместо этого рекомендуется использовать imageio.imwrite
.