Я проверил ваш файл nifti как в 3D Slicer, так и в nipy, и файл отлично работает. Из 608 срезов в этом файле сегментации только срезы 181-397 имеют положительные значения, поэтому вы должны получить полностью черные изображения для остальных.
Этот короткий фрагмент позволяет мне сохранить положительный пример на 300-м ломтик:
import nibabel
import matplotlib.pyplot as plt
seg = nibabel.load("D:/Downloads/segmentation.nii.gz")
data = seg.get_fdata()
layer = data[300,:,:]
plt.imsave("D:/Downloads/seg.png", layer, cmap='gray')
Дайте мне знать, если вы можете повторить это с помощью кода выше?
Кроме того, я знаю это Это не было частью вопроса, но вам следует рассмотреть возможность использования формата nifti (или NRRD) вместо преобразования их в файлы PNG.
1) При сохранении в PNG вы теряете много информации из КТ. По сути, вы масштабируете значения CT, которые часто находятся в диапазоне от -2000 до +2000 до 0-255 пикселей.
2) Аналогично с масками сегментации, в ваших файлах nifti сегментированная область сохраняется как «1» и фон как "0". Когда вы сохраните его в PNG, его масштаб будет изменен на 0-255, и вам придется снова преобразовать его для обучения по сети.