Поэлементное умножение действительно отлично работает:
from skimage import data
from matplotlib import pyplot as plt
image = data.coins()
mask = image > 128
masked_image = image * mask
fig, (ax0, ax1) = plt.subplots(nrows=1, ncols=2)
ax0.imshow(image, cmap='gray')
ax1.imshow(masked_image, cmap='gray')
Примечание 1 : ваш пример кода - это не вопрос о scikit-изображении, а вопрос об индексировании NumPy, и он не будет делать то, что вам нужно, а вернет линейный массив всех пикселей, где mask
True
Для получения дополнительной информации см. Документацию NumPy по булевому индексированию .
Примечание 2 : вы также можете использовать scikit-image для сохранения изображений:
from skimage import io
io.imsave('masked_image.png', masked_image)