【发布时间】:2020-08-01 02:05:08
【问题描述】:
我对深度学习和图像分割任务还很陌生。
我想通过获取每个病例的中心 50 个切片,在 3D 漂亮数据(CT 扫描)上训练一个 2D unet。我将图像和标签保存为 png,但标签完全是黑色的。我的目标是在给定 CT 扫描切片 (X) 的情况下预测肿瘤区域 (Y)。
我做错了什么?
我的代码:
labels = []
for i in range (0,100):
seg = Path("/content/drive/My Drive/")/"case_{:05d}".format(i) / "segmentation.nii.gz"
seg = nib.load(seg)
seg = seg.get_data()
n_i, n_j, n_k = seg.shape
seg = seg[int(((n_i-1)/2)-25):int(((n_i-1)/2)+25),:,:]
for i in range(seg.shape[0]):
labels.append((seg[i,:,:]))
i+=1
labels = np.array(labels)
for i in range(labels.shape[0]):
label = (labels[i,:,:])
imsave('/content/drive/My Drive/labels/labels_slice_{:05d}.png'.format(i), label)
i += 1
我对图片广告执行相同操作,获取以下 .png 文件: image_slice_00680
但对于标签,我只能得到一个全黑的图像。
图像和标签的数据类型分别是float64和uint16。
【问题讨论】:
-
加载 nifti 文件后打印出
seg.max()会得到什么?此外,.get_data()似乎已被弃用,而 nipy 现在使用.get_fdata()。你能上传一个示例 nifti 文件来重现错误吗? -
@jwitos 感谢您的评论。打印
seg.max()给出2.0。 here 你有一个例子。
标签: python image-segmentation unity3d-unet