{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "For convinience, I've unified all of the data preprocessing\n", "notebooks from [ALPNet](https://github.com/cheng-01037/Self-supervised-Fewshot-Medical-Image-Segmentation.git) into a single notebook" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%reset\n", "%load_ext autoreload\n", "%autoreload 2\n", "import numpy as np\n", "import os\n", "import glob\n", "import SimpleITK as sitk\n", "import sys\n", "\n", "sys.path.insert(0, '../')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Create dirs for the SABS and CHAOS datasets\n", "os.makedirs('./SABS', exist_ok=True)\n", "os.makedirs('./CHAOST2', exist_ok=True)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def copy_spacing_ori(src, dst):\n", " dst.SetSpacing(src.GetSpacing())\n", " dst.SetOrigin(src.GetOrigin())\n", " dst.SetDirection(src.GetDirection())\n", " return dst\n", "\n", "# helper functions copy pasted\n", "def resample_by_res(mov_img_obj, new_spacing, interpolator = sitk.sitkLinear, logging = True):\n", " resample = sitk.ResampleImageFilter()\n", " resample.SetInterpolator(interpolator)\n", " resample.SetOutputDirection(mov_img_obj.GetDirection())\n", " resample.SetOutputOrigin(mov_img_obj.GetOrigin())\n", " mov_spacing = mov_img_obj.GetSpacing()\n", "\n", " resample.SetOutputSpacing(new_spacing)\n", " RES_COE = np.array(mov_spacing) * 1.0 / np.array(new_spacing)\n", " new_size = np.array(mov_img_obj.GetSize()) * RES_COE \n", "\n", " resample.SetSize( [int(sz+1) for sz in new_size] )\n", " if logging:\n", " print(\"Spacing: {} -> {}\".format(mov_spacing, new_spacing))\n", " print(\"Size {} -> {}\".format( mov_img_obj.GetSize(), new_size ))\n", "\n", " return resample.Execute(mov_img_obj)\n", "\n", "def resample_lb_by_res(mov_lb_obj, new_spacing, interpolator = sitk.sitkLinear, ref_img = None, logging = True):\n", " src_mat = sitk.GetArrayFromImage(mov_lb_obj)\n", " lbvs = np.unique(src_mat)\n", " if logging:\n", " print(\"Label values: {}\".format(lbvs))\n", " for idx, lbv in enumerate(lbvs):\n", " _src_curr_mat = np.float32(src_mat == lbv) \n", " _src_curr_obj = sitk.GetImageFromArray(_src_curr_mat)\n", " _src_curr_obj.CopyInformation(mov_lb_obj)\n", " _tar_curr_obj = resample_by_res( _src_curr_obj, new_spacing, interpolator, logging )\n", " _tar_curr_mat = np.rint(sitk.GetArrayFromImage(_tar_curr_obj)) * lbv\n", " if idx == 0:\n", " out_vol = _tar_curr_mat\n", " else:\n", " out_vol[_tar_curr_mat == lbv] = lbv\n", " out_obj = sitk.GetImageFromArray(out_vol)\n", " out_obj.SetSpacing( _tar_curr_obj.GetSpacing() )\n", " if ref_img != None:\n", " out_obj.CopyInformation(ref_img)\n", " return out_obj\n", " \n", "## Then crop ROI\n", "def get_label_center(label):\n", " nnz = np.sum(label > 1e-5)\n", " return np.int32(np.rint(np.sum(np.nonzero(label), axis = 1) * 1.0 / nnz))\n", "\n", "def image_crop(ori_vol, crop_size, referece_ctr_idx, padval = 0., only_2d = True):\n", " \"\"\" crop a 3d matrix given the index of the new volume on the original volume\n", " Args:\n", " refernce_ctr_idx: the center of the new volume on the original volume (in indices)\n", " only_2d: only do cropping on first two dimensions\n", " \"\"\"\n", " _expand_cropsize = [x + 1 for x in crop_size] # to deal with boundary case\n", " if only_2d:\n", " assert len(crop_size) == 2, \"Actual len {}\".format(len(crop_size))\n", " assert len(referece_ctr_idx) == 2, \"Actual len {}\".format(len(referece_ctr_idx))\n", " _expand_cropsize.append(ori_vol.shape[-1])\n", " \n", " image_patch = np.ones(tuple(_expand_cropsize)) * padval\n", "\n", " half_size = tuple( [int(x * 1.0 / 2) for x in _expand_cropsize] )\n", " _min_idx = [0,0,0]\n", " _max_idx = list(ori_vol.shape)\n", "\n", " # bias of actual cropped size to the beginning and the end of this volume\n", " _bias_start = [0,0,0]\n", " _bias_end = [0,0,0]\n", "\n", " for dim,hsize in enumerate(half_size):\n", " if dim == 2 and only_2d:\n", " break\n", "\n", " _bias_start[dim] = np.min([hsize, referece_ctr_idx[dim]])\n", " _bias_end[dim] = np.min([hsize, ori_vol.shape[dim] - referece_ctr_idx[dim]])\n", "\n", " _min_idx[dim] = referece_ctr_idx[dim] - _bias_start[dim]\n", " _max_idx[dim] = referece_ctr_idx[dim] + _bias_end[dim]\n", " \n", " if only_2d:\n", " image_patch[ half_size[0] - _bias_start[0]: half_size[0] +_bias_end[0], \\\n", " half_size[1] - _bias_start[1]: half_size[1] +_bias_end[1], ... ] = \\\n", " ori_vol[ referece_ctr_idx[0] - _bias_start[0]: referece_ctr_idx[0] +_bias_end[0], \\\n", " referece_ctr_idx[1] - _bias_start[1]: referece_ctr_idx[1] +_bias_end[1], ... ]\n", "\n", " image_patch = image_patch[ 0: crop_size[0], 0: crop_size[1], : ]\n", " # then goes back to original volume\n", " else:\n", " image_patch[ half_size[0] - _bias_start[0]: half_size[0] +_bias_end[0], \\\n", " half_size[1] - _bias_start[1]: half_size[1] +_bias_end[1], \\\n", " half_size[2] - _bias_start[2]: half_size[2] +_bias_end[2] ] = \\\n", " ori_vol[ referece_ctr_idx[0] - _bias_start[0]: referece_ctr_idx[0] +_bias_end[0], \\\n", " referece_ctr_idx[1] - _bias_start[1]: referece_ctr_idx[1] +_bias_end[1], \\\n", " referece_ctr_idx[2] - _bias_start[2]: referece_ctr_idx[2] +_bias_end[2] ]\n", "\n", " image_patch = image_patch[ 0: crop_size[0], 0: crop_size[1], 0: crop_size[2] ]\n", " return image_patch\n", "\n", "s2n = sitk.GetArrayFromImage\n", "\n", "\n", "def resample_imgs(imgs, segs, pids, scan_dir, BD_BIAS, SPA_FAC, required_res=512):\n", " spa_fac = SPA_FAC\n", " for img_fid, seg_fid, pid in zip(imgs, segs, pids):\n", "\n", " # lb_n = nio.read_nii_bysitk(seg_fid)\n", "\n", " img_obj = sitk.ReadImage( img_fid )\n", " seg_obj = sitk.ReadImage( seg_fid )\n", " print(img_fid, seg_fid)\n", " ## image\n", " array = sitk.GetArrayFromImage(img_obj)\n", " H = W = array.shape[-1]\n", " if SPA_FAC is None:\n", " spa_fac = (H - 2 * BD_BIAS) / required_res\n", " print(array.shape, f\"label shape {sitk.GetArrayFromImage(seg_obj).shape}\")\n", " # cropping\n", " array = array[:, BD_BIAS: -BD_BIAS, BD_BIAS: -BD_BIAS]\n", " cropped_img_o = sitk.GetImageFromArray(array)\n", " cropped_img_o = copy_spacing_ori(img_obj, cropped_img_o)\n", "\n", " # resampling\n", " img_spa_ori = img_obj.GetSpacing()\n", " res_img_o = resample_by_res(cropped_img_o, [img_spa_ori[0] * spa_fac, img_spa_ori[1] * spa_fac, img_spa_ori[-1]], interpolator = sitk.sitkLinear,\n", " logging = True)\n", "\n", " ## label\n", " lb_arr = sitk.GetArrayFromImage(seg_obj)\n", " # cropping\n", " lb_arr = lb_arr[:,BD_BIAS: -BD_BIAS, BD_BIAS: -BD_BIAS]\n", " cropped_lb_o = sitk.GetImageFromArray(lb_arr)\n", " cropped_lb_o = copy_spacing_ori(seg_obj, cropped_lb_o)\n", "\n", " lb_spa_ori = seg_obj.GetSpacing()\n", "\n", " # resampling\n", " res_lb_o = resample_lb_by_res(cropped_lb_o, [lb_spa_ori[0] * spa_fac, lb_spa_ori[1] * spa_fac, lb_spa_ori[-1] ], interpolator = sitk.sitkLinear,\n", " ref_img = res_img_o, logging = True)\n", "\n", " \n", " out_img_fid = os.path.join( scan_dir, f'image_{pid}.nii.gz' )\n", " out_lb_fid = os.path.join( scan_dir, f'label_{pid}.nii.gz' ) \n", " \n", " # then save\n", " sitk.WriteImage(res_img_o, out_img_fid, True) \n", " sitk.WriteImage(res_lb_o, out_lb_fid, True) \n", " print(f\"{out_img_fid} has been saved, shape: {res_img_o.GetSize()}\")\n", " print(f\"{out_lb_fid} has been saved\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Intensitiy Normalization for CT Images" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# set up directories for images\n", "IMG_FOLDER=\"./miccai2015/RawData/Training/img\"\n", "SEG_FOLDER=\"./miccai2015/RawData/Training/label\"\n", "OUT_FOLDER=\"./SABS/tmp_normalized/\"" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[]\n" ] } ], "source": [ "imgs = sorted(glob.glob(IMG_FOLDER + \"/*.nii.gz\"))\n", "segs = sorted(glob.glob(SEG_FOLDER + \"/*.nii.gz\"))\n", "pids = [pid.split(\"img\")[-1].split(\".\")[0] for pid in imgs]\n", "print(sorted(pids))\n", "assert len(imgs) == len(segs)\n", "for img, seg in zip(imgs, segs):\n", " print(img, seg)" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(147, 512, 512) label shape (147, 512, 512)\n", "./SABS/tmp_normalized/image_0.nii.gz has been save\n", "./SABS/tmp_normalized/label_0.nii.gz has been save\n", "(139, 512, 512) label shape (139, 512, 512)\n", "./SABS/tmp_normalized/image_1.nii.gz has been save\n", "./SABS/tmp_normalized/label_1.nii.gz has been save\n", "(198, 512, 512) label shape (198, 512, 512)\n", "./SABS/tmp_normalized/image_2.nii.gz has been save\n", "./SABS/tmp_normalized/label_2.nii.gz has been save\n", "(140, 512, 512) label shape (140, 512, 512)\n", "./SABS/tmp_normalized/image_3.nii.gz has been save\n", "./SABS/tmp_normalized/label_3.nii.gz has been save\n", "(117, 512, 512) label shape (117, 512, 512)\n", "./SABS/tmp_normalized/image_4.nii.gz has been save\n", "./SABS/tmp_normalized/label_4.nii.gz has been save\n", "(131, 512, 512) label shape (131, 512, 512)\n", "./SABS/tmp_normalized/image_5.nii.gz has been save\n", "./SABS/tmp_normalized/label_5.nii.gz has been save\n", "(163, 512, 512) label shape (163, 512, 512)\n", "./SABS/tmp_normalized/image_6.nii.gz has been save\n", "./SABS/tmp_normalized/label_6.nii.gz has been save\n", "(148, 512, 512) label shape (148, 512, 512)\n", "./SABS/tmp_normalized/image_7.nii.gz has been save\n", "./SABS/tmp_normalized/label_7.nii.gz has been save\n", "(149, 512, 512) label shape (149, 512, 512)\n", "./SABS/tmp_normalized/image_8.nii.gz has been save\n", "./SABS/tmp_normalized/label_8.nii.gz has been save\n", "(148, 512, 512) label shape (148, 512, 512)\n", "./SABS/tmp_normalized/image_9.nii.gz has been save\n", "./SABS/tmp_normalized/label_9.nii.gz has been save\n", "(143, 512, 512) label shape (143, 512, 512)\n", "./SABS/tmp_normalized/image_10.nii.gz has been save\n", "./SABS/tmp_normalized/label_10.nii.gz has been save\n", "(89, 512, 512) label shape (89, 512, 512)\n", "./SABS/tmp_normalized/image_11.nii.gz has been save\n", "./SABS/tmp_normalized/label_11.nii.gz has been save\n", "(96, 512, 512) label shape (96, 512, 512)\n", "./SABS/tmp_normalized/image_12.nii.gz has been save\n", "./SABS/tmp_normalized/label_12.nii.gz has been save\n", "(124, 512, 512) label shape (124, 512, 512)\n", "./SABS/tmp_normalized/image_13.nii.gz has been save\n", "./SABS/tmp_normalized/label_13.nii.gz has been save\n", "(85, 512, 512) label shape (85, 512, 512)\n", "./SABS/tmp_normalized/image_14.nii.gz has been save\n", "./SABS/tmp_normalized/label_14.nii.gz has been save\n", "(131, 512, 512) label shape (131, 512, 512)\n", "./SABS/tmp_normalized/image_15.nii.gz has been save\n", "./SABS/tmp_normalized/label_15.nii.gz has been save\n", "(88, 512, 512) label shape (88, 512, 512)\n", "./SABS/tmp_normalized/image_16.nii.gz has been save\n", "./SABS/tmp_normalized/label_16.nii.gz has been save\n", "(89, 512, 512) label shape (89, 512, 512)\n", "./SABS/tmp_normalized/image_17.nii.gz has been save\n", "./SABS/tmp_normalized/label_17.nii.gz has been save\n", "(100, 512, 512) label shape (100, 512, 512)\n", "./SABS/tmp_normalized/image_18.nii.gz has been save\n", "./SABS/tmp_normalized/label_18.nii.gz has been save\n", "(153, 512, 512) label shape (153, 512, 512)\n", "./SABS/tmp_normalized/image_19.nii.gz has been save\n", "./SABS/tmp_normalized/label_19.nii.gz has been save\n", "(93, 512, 512) label shape (93, 512, 512)\n", "./SABS/tmp_normalized/image_20.nii.gz has been save\n", "./SABS/tmp_normalized/label_20.nii.gz has been save\n", "(144, 512, 512) label shape (144, 512, 512)\n", "./SABS/tmp_normalized/image_21.nii.gz has been save\n", "./SABS/tmp_normalized/label_21.nii.gz has been save\n", "(104, 512, 512) label shape (104, 512, 512)\n", "./SABS/tmp_normalized/image_22.nii.gz has been save\n", "./SABS/tmp_normalized/label_22.nii.gz has been save\n", "(98, 512, 512) label shape (98, 512, 512)\n", "./SABS/tmp_normalized/image_23.nii.gz has been save\n", "./SABS/tmp_normalized/label_23.nii.gz has been save\n", "(94, 512, 512) label shape (94, 512, 512)\n", "./SABS/tmp_normalized/image_24.nii.gz has been save\n", "./SABS/tmp_normalized/label_24.nii.gz has been save\n", "(184, 512, 512) label shape (184, 512, 512)\n", "./SABS/tmp_normalized/image_25.nii.gz has been save\n", "./SABS/tmp_normalized/label_25.nii.gz has been save\n", "(99, 512, 512) label shape (99, 512, 512)\n", "./SABS/tmp_normalized/image_26.nii.gz has been save\n", "./SABS/tmp_normalized/label_26.nii.gz has been save\n", "(100, 512, 512) label shape (100, 512, 512)\n", "./SABS/tmp_normalized/image_27.nii.gz has been save\n", "./SABS/tmp_normalized/label_27.nii.gz has been save\n", "(90, 512, 512) label shape (90, 512, 512)\n", "./SABS/tmp_normalized/image_28.nii.gz has been save\n", "./SABS/tmp_normalized/label_28.nii.gz has been save\n", "(195, 512, 512) label shape (195, 512, 512)\n", "./SABS/tmp_normalized/image_29.nii.gz has been save\n", "./SABS/tmp_normalized/label_29.nii.gz has been save\n" ] } ], "source": [ "import copy\n", "scan_dir = OUT_FOLDER\n", "LIR = -125\n", "HIR = 275\n", "os.makedirs(scan_dir, exist_ok = True)\n", "\n", "reindex = 0\n", "for img_fid, seg_fid, pid in zip(imgs, segs, pids):\n", "\n", " img_obj = sitk.ReadImage( img_fid )\n", " seg_obj = sitk.ReadImage( seg_fid )\n", "\n", " array = sitk.GetArrayFromImage(img_obj)\n", " print(array.shape, f\"label shape {sitk.GetArrayFromImage(seg_obj).shape}\")\n", " array[array > HIR] = HIR\n", " array[array < LIR] = LIR\n", " \n", " array = (array - array.min()) / (array.max() - array.min()) * 255.0\n", " \n", " # then normalize this\n", " \n", " wined_img = sitk.GetImageFromArray(array)\n", " wined_img = copy_spacing_ori(img_obj, wined_img)\n", " \n", " out_img_fid = os.path.join( scan_dir, f'image_{str(reindex)}.nii.gz' )\n", " out_lb_fid = os.path.join( scan_dir, f'label_{str(reindex)}.nii.gz' ) \n", " \n", " # then save\n", " sitk.WriteImage(wined_img, out_img_fid, True) \n", " sitk.WriteImage(seg_obj, out_lb_fid, True) \n", " print(\"{} has been save\".format(out_img_fid))\n", " print(\"{} has been save\".format(out_lb_fid))\n", " reindex += 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Overview\n", "\n", "This is the second step of preprocessing\n", "\n", "Cut out irrelevant empty boundary and resample to 512x512 in axial plane.\n", "\n", "Input: intensity-normalized images\n", "\n", "Output: spacially resampled images" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['0', '1', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '2', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '3', '4', '5', '6', '7', '8', '9']\n", "./SABS/tmp_normalized/image_0.nii.gz ./SABS/tmp_normalized/label_0.nii.gz\n", "./SABS/tmp_normalized/image_1.nii.gz ./SABS/tmp_normalized/label_1.nii.gz\n", "./SABS/tmp_normalized/image_10.nii.gz ./SABS/tmp_normalized/label_10.nii.gz\n", "./SABS/tmp_normalized/image_11.nii.gz ./SABS/tmp_normalized/label_11.nii.gz\n", "./SABS/tmp_normalized/image_12.nii.gz ./SABS/tmp_normalized/label_12.nii.gz\n", "./SABS/tmp_normalized/image_13.nii.gz ./SABS/tmp_normalized/label_13.nii.gz\n", "./SABS/tmp_normalized/image_14.nii.gz ./SABS/tmp_normalized/label_14.nii.gz\n", "./SABS/tmp_normalized/image_15.nii.gz ./SABS/tmp_normalized/label_15.nii.gz\n", "./SABS/tmp_normalized/image_16.nii.gz ./SABS/tmp_normalized/label_16.nii.gz\n", "./SABS/tmp_normalized/image_17.nii.gz ./SABS/tmp_normalized/label_17.nii.gz\n", "./SABS/tmp_normalized/image_18.nii.gz ./SABS/tmp_normalized/label_18.nii.gz\n", "./SABS/tmp_normalized/image_19.nii.gz ./SABS/tmp_normalized/label_19.nii.gz\n", "./SABS/tmp_normalized/image_2.nii.gz ./SABS/tmp_normalized/label_2.nii.gz\n", "./SABS/tmp_normalized/image_20.nii.gz ./SABS/tmp_normalized/label_20.nii.gz\n", "./SABS/tmp_normalized/image_21.nii.gz ./SABS/tmp_normalized/label_21.nii.gz\n", "./SABS/tmp_normalized/image_22.nii.gz ./SABS/tmp_normalized/label_22.nii.gz\n", "./SABS/tmp_normalized/image_23.nii.gz ./SABS/tmp_normalized/label_23.nii.gz\n", "./SABS/tmp_normalized/image_24.nii.gz ./SABS/tmp_normalized/label_24.nii.gz\n", "./SABS/tmp_normalized/image_25.nii.gz ./SABS/tmp_normalized/label_25.nii.gz\n", "./SABS/tmp_normalized/image_26.nii.gz ./SABS/tmp_normalized/label_26.nii.gz\n", "./SABS/tmp_normalized/image_27.nii.gz ./SABS/tmp_normalized/label_27.nii.gz\n", "./SABS/tmp_normalized/image_28.nii.gz ./SABS/tmp_normalized/label_28.nii.gz\n", "./SABS/tmp_normalized/image_29.nii.gz ./SABS/tmp_normalized/label_29.nii.gz\n", "./SABS/tmp_normalized/image_3.nii.gz ./SABS/tmp_normalized/label_3.nii.gz\n", "./SABS/tmp_normalized/image_4.nii.gz ./SABS/tmp_normalized/label_4.nii.gz\n", "./SABS/tmp_normalized/image_5.nii.gz ./SABS/tmp_normalized/label_5.nii.gz\n", "./SABS/tmp_normalized/image_6.nii.gz ./SABS/tmp_normalized/label_6.nii.gz\n", "./SABS/tmp_normalized/image_7.nii.gz ./SABS/tmp_normalized/label_7.nii.gz\n", "./SABS/tmp_normalized/image_8.nii.gz ./SABS/tmp_normalized/label_8.nii.gz\n", "./SABS/tmp_normalized/image_9.nii.gz ./SABS/tmp_normalized/label_9.nii.gz\n" ] } ], "source": [ "IMG_FOLDER = \"./SABS/tmp_normalized\"\n", "\n", "SEG_FOLDER = IMG_FOLDER\n", "imgs = glob.glob(IMG_FOLDER + \"/image_*.nii.gz\")\n", "imgs = sorted([ fid for fid in sorted(imgs) ])\n", "segs = sorted([ fid for fid in glob.glob(SEG_FOLDER + \"/label_*.nii.gz\")])\n", "\n", "pids = [pid.split(\"_\")[-1].split(\".\")[0] for pid in imgs]\n", "print(pids)\n", "for img, seg in zip(imgs, segs):\n", " print(img, seg)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "./SABS/tmp_normalized/image_0.nii.gz ./SABS/tmp_normalized/label_0.nii.gz\n", "(147, 512, 512) label shape (147, 512, 512)\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "Spacing: (0.66796875, 0.66796875, 3.0) -> [0.66796875, 0.66796875, 3.0]\n", "Size (448, 448, 147) -> [448. 448. 147.]\n", "./SABS/sabs_CT_normalized/image_0.nii.gz has been saved, shape: (449, 449, 148)\n", "./SABS/sabs_CT_normalized/label_0.nii.gz has been saved\n", "./SABS/tmp_normalized/image_1.nii.gz ./SABS/tmp_normalized/label_1.nii.gz\n", "(139, 512, 512) label shape (139, 512, 512)\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "Spacing: (0.720703125, 0.720703125, 3.0) -> [0.720703125, 0.720703125, 3.0]\n", "Size (448, 448, 139) -> [448. 448. 139.]\n", "./SABS/sabs_CT_normalized/image_1.nii.gz has been saved, shape: (449, 449, 140)\n", "./SABS/sabs_CT_normalized/label_1.nii.gz has been saved\n", "./SABS/tmp_normalized/image_10.nii.gz ./SABS/tmp_normalized/label_10.nii.gz\n", "(143, 512, 512) label shape (143, 512, 512)\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "Spacing: (0.68359375, 0.68359375, 3.0) -> [0.68359375, 0.68359375, 3.0]\n", "Size (448, 448, 143) -> [448. 448. 143.]\n", "./SABS/sabs_CT_normalized/image_10.nii.gz has been saved, shape: (449, 449, 144)\n", "./SABS/sabs_CT_normalized/label_10.nii.gz has been saved\n", "./SABS/tmp_normalized/image_11.nii.gz ./SABS/tmp_normalized/label_11.nii.gz\n", "(89, 512, 512) label shape (89, 512, 512)\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.7675780057907104, 0.7675780057907104, 5.0) -> [0.7675780057907104, 0.7675780057907104, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "./SABS/sabs_CT_normalized/image_11.nii.gz has been saved, shape: (449, 449, 90)\n", "./SABS/sabs_CT_normalized/label_11.nii.gz has been saved\n", "./SABS/tmp_normalized/image_12.nii.gz ./SABS/tmp_normalized/label_12.nii.gz\n", "(96, 512, 512) label shape (96, 512, 512)\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Label values: [ 0 1 2 3 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "Spacing: (0.70703125, 0.70703125, 5.0) -> [0.70703125, 0.70703125, 5.0]\n", "Size (448, 448, 96) -> [448. 448. 96.]\n", "./SABS/sabs_CT_normalized/image_12.nii.gz has been saved, shape: (449, 449, 97)\n", "./SABS/sabs_CT_normalized/label_12.nii.gz has been saved\n", "./SABS/tmp_normalized/image_13.nii.gz ./SABS/tmp_normalized/label_13.nii.gz\n", "(124, 512, 512) label shape (124, 512, 512)\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "Spacing: (0.685546875, 0.685546875, 3.0) -> [0.685546875, 0.685546875, 3.0]\n", "Size (448, 448, 124) -> [448. 448. 124.]\n", "./SABS/sabs_CT_normalized/image_13.nii.gz has been saved, shape: (449, 449, 125)\n", "./SABS/sabs_CT_normalized/label_13.nii.gz has been saved\n", "./SABS/tmp_normalized/image_14.nii.gz ./SABS/tmp_normalized/label_14.nii.gz\n", "(85, 512, 512) label shape (85, 512, 512)\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "Spacing: (0.83203125, 0.83203125, 5.0) -> [0.83203125, 0.83203125, 5.0]\n", "Size (448, 448, 85) -> [448. 448. 85.]\n", "./SABS/sabs_CT_normalized/image_14.nii.gz has been saved, shape: (449, 449, 86)\n", "./SABS/sabs_CT_normalized/label_14.nii.gz has been saved\n", "./SABS/tmp_normalized/image_15.nii.gz ./SABS/tmp_normalized/label_15.nii.gz\n", "(131, 512, 512) label shape (131, 512, 512)\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.7792969942092896, 0.7792969942092896, 5.0) -> [0.7792969942092896, 0.7792969942092896, 5.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "./SABS/sabs_CT_normalized/image_15.nii.gz has been saved, shape: (449, 449, 132)\n", "./SABS/sabs_CT_normalized/label_15.nii.gz has been saved\n", "./SABS/tmp_normalized/image_16.nii.gz ./SABS/tmp_normalized/label_16.nii.gz\n", "(88, 512, 512) label shape (88, 512, 512)\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "Spacing: (0.7753909826278687, 0.7753909826278687, 5.0) -> [0.7753909826278687, 0.7753909826278687, 5.0]\n", "Size (448, 448, 88) -> [448. 448. 88.]\n", "./SABS/sabs_CT_normalized/image_16.nii.gz has been saved, shape: (449, 449, 89)\n", "./SABS/sabs_CT_normalized/label_16.nii.gz has been saved\n", "./SABS/tmp_normalized/image_17.nii.gz ./SABS/tmp_normalized/label_17.nii.gz\n", "(89, 512, 512) label shape (89, 512, 512)\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "Spacing: (0.796875, 0.796875, 5.0) -> [0.796875, 0.796875, 5.0]\n", "Size (448, 448, 89) -> [448. 448. 89.]\n", "./SABS/sabs_CT_normalized/image_17.nii.gz has been saved, shape: (449, 449, 90)\n", "./SABS/sabs_CT_normalized/label_17.nii.gz has been saved\n", "./SABS/tmp_normalized/image_18.nii.gz ./SABS/tmp_normalized/label_18.nii.gz\n", "(100, 512, 512) label shape (100, 512, 512)\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.875, 0.875, 3.0) -> [0.875, 0.875, 3.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "./SABS/sabs_CT_normalized/image_18.nii.gz has been saved, shape: (449, 449, 101)\n", "./SABS/sabs_CT_normalized/label_18.nii.gz has been saved\n", "./SABS/tmp_normalized/image_19.nii.gz ./SABS/tmp_normalized/label_19.nii.gz\n", "(153, 512, 512) label shape (153, 512, 512)\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 153) -> [448. 448. 153.]\n", "./SABS/sabs_CT_normalized/image_19.nii.gz has been saved, shape: (449, 449, 154)\n", "./SABS/sabs_CT_normalized/label_19.nii.gz has been saved\n", "./SABS/tmp_normalized/image_2.nii.gz ./SABS/tmp_normalized/label_2.nii.gz\n", "(198, 512, 512) label shape (198, 512, 512)\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "Spacing: (0.8984375, 0.8984375, 3.0) -> [0.8984375, 0.8984375, 3.0]\n", "Size (448, 448, 198) -> [448. 448. 198.]\n", "./SABS/sabs_CT_normalized/image_2.nii.gz has been saved, shape: (449, 449, 199)\n", "./SABS/sabs_CT_normalized/label_2.nii.gz has been saved\n", "./SABS/tmp_normalized/image_20.nii.gz ./SABS/tmp_normalized/label_20.nii.gz\n", "(93, 512, 512) label shape (93, 512, 512)\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "Spacing: (0.837890625, 0.837890625, 3.0) -> [0.837890625, 0.837890625, 3.0]\n", "Size (448, 448, 93) -> [448. 448. 93.]\n", "./SABS/sabs_CT_normalized/image_20.nii.gz has been saved, shape: (449, 449, 94)\n", "./SABS/sabs_CT_normalized/label_20.nii.gz has been saved\n", "./SABS/tmp_normalized/image_21.nii.gz ./SABS/tmp_normalized/label_21.nii.gz\n", "(144, 512, 512) label shape (144, 512, 512)\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "Spacing: (0.740234375, 0.740234375, 3.0) -> [0.740234375, 0.740234375, 3.0]\n", "Size (448, 448, 144) -> [448. 448. 144.]\n", "./SABS/sabs_CT_normalized/image_21.nii.gz has been saved, shape: (449, 449, 145)\n", "./SABS/sabs_CT_normalized/label_21.nii.gz has been saved\n", "./SABS/tmp_normalized/image_22.nii.gz ./SABS/tmp_normalized/label_22.nii.gz\n", "(104, 512, 512) label shape (104, 512, 512)\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "Spacing: (0.8144530057907104, 0.8144530057907104, 5.0) -> [0.8144530057907104, 0.8144530057907104, 5.0]\n", "Size (448, 448, 104) -> [448. 448. 104.]\n", "./SABS/sabs_CT_normalized/image_22.nii.gz has been saved, shape: (449, 449, 105)\n", "./SABS/sabs_CT_normalized/label_22.nii.gz has been saved\n", "./SABS/tmp_normalized/image_23.nii.gz ./SABS/tmp_normalized/label_23.nii.gz\n", "(98, 512, 512) label shape (98, 512, 512)\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "Spacing: (0.671875, 0.671875, 5.0) -> [0.671875, 0.671875, 5.0]\n", "Size (448, 448, 98) -> [448. 448. 98.]\n", "./SABS/sabs_CT_normalized/image_23.nii.gz has been saved, shape: (449, 449, 99)\n", "./SABS/sabs_CT_normalized/label_23.nii.gz has been saved\n", "./SABS/tmp_normalized/image_24.nii.gz ./SABS/tmp_normalized/label_24.nii.gz\n", "(94, 512, 512) label shape (94, 512, 512)\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Label values: [ 0 1 2 3 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "Spacing: (0.9199219942092896, 0.9199219942092896, 5.0) -> [0.9199219942092896, 0.9199219942092896, 5.0]\n", "Size (448, 448, 94) -> [448. 448. 94.]\n", "./SABS/sabs_CT_normalized/image_24.nii.gz has been saved, shape: (449, 449, 95)\n", "./SABS/sabs_CT_normalized/label_24.nii.gz has been saved\n", "./SABS/tmp_normalized/image_25.nii.gz ./SABS/tmp_normalized/label_25.nii.gz\n", "(184, 512, 512) label shape (184, 512, 512)\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "Spacing: (0.74609375, 0.74609375, 3.0) -> [0.74609375, 0.74609375, 3.0]\n", "Size (448, 448, 184) -> [448. 448. 184.]\n", "./SABS/sabs_CT_normalized/image_25.nii.gz has been saved, shape: (449, 449, 185)\n", "./SABS/sabs_CT_normalized/label_25.nii.gz has been saved\n", "./SABS/tmp_normalized/image_26.nii.gz ./SABS/tmp_normalized/label_26.nii.gz\n", "(99, 512, 512) label shape (99, 512, 512)\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "Spacing: (0.703125, 0.703125, 5.0) -> [0.703125, 0.703125, 5.0]\n", "Size (448, 448, 99) -> [448. 448. 99.]\n", "./SABS/sabs_CT_normalized/image_26.nii.gz has been saved, shape: (449, 449, 100)\n", "./SABS/sabs_CT_normalized/label_26.nii.gz has been saved\n", "./SABS/tmp_normalized/image_27.nii.gz ./SABS/tmp_normalized/label_27.nii.gz\n", "(100, 512, 512) label shape (100, 512, 512)\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 5.0) -> [0.9765620231628418, 0.9765620231628418, 5.0]\n", "Size (448, 448, 100) -> [448. 448. 100.]\n", "./SABS/sabs_CT_normalized/image_27.nii.gz has been saved, shape: (449, 449, 101)\n", "./SABS/sabs_CT_normalized/label_27.nii.gz has been saved\n", "./SABS/tmp_normalized/image_28.nii.gz ./SABS/tmp_normalized/label_28.nii.gz\n", "(90, 512, 512) label shape (90, 512, 512)\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "Spacing: (0.9760000109672546, 0.9760000109672546, 5.0) -> [0.9760000109672546, 0.9760000109672546, 5.0]\n", "Size (448, 448, 90) -> [448. 448. 90.]\n", "./SABS/sabs_CT_normalized/image_28.nii.gz has been saved, shape: (449, 449, 91)\n", "./SABS/sabs_CT_normalized/label_28.nii.gz has been saved\n", "./SABS/tmp_normalized/image_29.nii.gz ./SABS/tmp_normalized/label_29.nii.gz\n", "(195, 512, 512) label shape (195, 512, 512)\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "Spacing: (0.7421875, 0.7421875, 3.0) -> [0.7421875, 0.7421875, 3.0]\n", "Size (448, 448, 195) -> [448. 448. 195.]\n", "./SABS/sabs_CT_normalized/image_29.nii.gz has been saved, shape: (449, 449, 196)\n", "./SABS/sabs_CT_normalized/label_29.nii.gz has been saved\n", "./SABS/tmp_normalized/image_3.nii.gz ./SABS/tmp_normalized/label_3.nii.gz\n", "(140, 512, 512) label shape (140, 512, 512)\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "Spacing: (0.59375, 0.59375, 3.0) -> [0.59375, 0.59375, 3.0]\n", "Size (448, 448, 140) -> [448. 448. 140.]\n", "./SABS/sabs_CT_normalized/image_3.nii.gz has been saved, shape: (449, 449, 141)\n", "./SABS/sabs_CT_normalized/label_3.nii.gz has been saved\n", "./SABS/tmp_normalized/image_4.nii.gz ./SABS/tmp_normalized/label_4.nii.gz\n", "(117, 512, 512) label shape (117, 512, 512)\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "Spacing: (0.90625, 0.90625, 3.0) -> [0.90625, 0.90625, 3.0]\n", "Size (448, 448, 117) -> [448. 448. 117.]\n", "./SABS/sabs_CT_normalized/image_4.nii.gz has been saved, shape: (449, 449, 118)\n", "./SABS/sabs_CT_normalized/label_4.nii.gz has been saved\n", "./SABS/tmp_normalized/image_5.nii.gz ./SABS/tmp_normalized/label_5.nii.gz\n", "(131, 512, 512) label shape (131, 512, 512)\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "Spacing: (0.701171875, 0.701171875, 3.0) -> [0.701171875, 0.701171875, 3.0]\n", "Size (448, 448, 131) -> [448. 448. 131.]\n", "./SABS/sabs_CT_normalized/image_5.nii.gz has been saved, shape: (449, 449, 132)\n", "./SABS/sabs_CT_normalized/label_5.nii.gz has been saved\n", "./SABS/tmp_normalized/image_6.nii.gz ./SABS/tmp_normalized/label_6.nii.gz\n", "(163, 512, 512) label shape (163, 512, 512)\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "Spacing: (0.748046875, 0.748046875, 3.0) -> [0.748046875, 0.748046875, 3.0]\n", "Size (448, 448, 163) -> [448. 448. 163.]\n", "./SABS/sabs_CT_normalized/image_6.nii.gz has been saved, shape: (449, 449, 164)\n", "./SABS/sabs_CT_normalized/label_6.nii.gz has been saved\n", "./SABS/tmp_normalized/image_7.nii.gz ./SABS/tmp_normalized/label_7.nii.gz\n", "(148, 512, 512) label shape (148, 512, 512)\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.728515625, 0.728515625, 3.0) -> [0.728515625, 0.728515625, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "./SABS/sabs_CT_normalized/image_7.nii.gz has been saved, shape: (449, 449, 149)\n", "./SABS/sabs_CT_normalized/label_7.nii.gz has been saved\n", "./SABS/tmp_normalized/image_8.nii.gz ./SABS/tmp_normalized/label_8.nii.gz\n", "(149, 512, 512) label shape (149, 512, 512)\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "Spacing: (0.9765620231628418, 0.9765620231628418, 2.5) -> [0.9765620231628418, 0.9765620231628418, 2.5]\n", "Size (448, 448, 149) -> [448. 448. 149.]\n", "./SABS/sabs_CT_normalized/image_8.nii.gz has been saved, shape: (449, 449, 150)\n", "./SABS/sabs_CT_normalized/label_8.nii.gz has been saved\n", "./SABS/tmp_normalized/image_9.nii.gz ./SABS/tmp_normalized/label_9.nii.gz\n", "(148, 512, 512) label shape (148, 512, 512)\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Label values: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "Spacing: (0.78125, 0.78125, 3.0) -> [0.78125, 0.78125, 3.0]\n", "Size (448, 448, 148) -> [448. 448. 148.]\n", "./SABS/sabs_CT_normalized/image_9.nii.gz has been saved, shape: (449, 449, 149)\n", "./SABS/sabs_CT_normalized/label_9.nii.gz has been saved\n" ] } ], "source": [ "import copy\n", "OUT_FOLDER = \"./SABS/sabs_CT_normalized\"\n", "BD_BIAS = 32 # cut irrelavent empty boundary to make roi stands out\n", "\n", "# SPA_FAC = (512 - 2 * BD_BIAS) / 512 # spacing factor\n", "for res in (256, 672):\n", " if res == 672:\n", " OUT_FOLDER += \"_672\"\n", " scan_dir = OUT_FOLDER\n", " os.makedirs(OUT_FOLDER, exist_ok = True)\n", "\n", " resample_imgs(imgs, segs, pids, scan_dir, BD_BIAS, SPA_FAC=None, required_res=res)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Synapse Classmap Generation" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pid 0 finished!\n", "pid 1 finished!\n", "pid 2 finished!\n", "pid 3 finished!\n", "pid 4 finished!\n", "pid 5 finished!\n", "pid 6 finished!\n", "pid 7 finished!\n", "pid 8 finished!\n", "pid 9 finished!\n", "pid 10 finished!\n", "pid 11 finished!\n", "pid 12 finished!\n", "pid 13 finished!\n", "pid 14 finished!\n", "pid 15 finished!\n", "pid 16 finished!\n", "pid 17 finished!\n", "pid 18 finished!\n", "pid 19 finished!\n", "pid 20 finished!\n", "pid 21 finished!\n", "pid 22 finished!\n", "pid 23 finished!\n", "pid 24 finished!\n", "pid 25 finished!\n", "pid 26 finished!\n", "pid 27 finished!\n", "pid 28 finished!\n", "pid 29 finished!\n", "pid 30 finished!\n", "pid 31 finished!\n", "pid 32 finished!\n", "pid 33 finished!\n", "pid 34 finished!\n", "pid 35 finished!\n", "pid 36 finished!\n", "pid 37 finished!\n" ] } ], "source": [ "import json\n", "# import niftiio as nio\n", "import SimpleITK as sitk\n", "\n", "# normalization: cut top 2% of histogram, then doing volume-wise normalization\n", "IMG_BNAMES = (\"./SABS/sabs_CT_normalized/image_*.nii.gz\", \"./SABS/sabs_CT_normalized_672/image_*.nii.gz\")\n", "SEG_NAMES = (\"./SABS/sabs_CT_normalized/label_*.nii.gz\", \"./SABS/sabs_CT_normalized_672/label_*.nii.gz\")\n", "for IMG_BNAME, SEG_BNAME in zip(IMG_BNAMES, SEG_NAMES):\n", " imgs = glob.glob(IMG_BNAME)\n", " segs = glob.glob(SEG_BNAME)\n", " imgs = [ fid for fid in sorted(imgs, key = lambda x: int(x.split(\"_\")[-1].split(\".nii.gz\")[0]) ) ]\n", " segs = [ fid for fid in sorted(segs, key = lambda x: int(x.split(\"_\")[-1].split(\".nii.gz\")[0]) ) ]\n", " for img, seg in zip(imgs, segs):\n", " print(img, seg)\n", "\n", " classmap = {}\n", " LABEL_NAME = [\"BGD\", \"SPLEEN\", \"KID_R\", \"KID_l\", \"GALLBLADDER\", \"ESOPHAGUS\", \"LIVER\", \"STOMACH\", \"AORTA\", \"IVC\", \"PS_VEIN\", \"PANCREAS\", \"AG_R\", \"AG_L\"] \n", "\n", " MIN_TP=1 # minimum number of true positive pixels in a slice\n", "\n", " fid = os.path.dirname(IMG_BNAME) + f'/classmap_{MIN_TP}.json'\n", " for _lb in LABEL_NAME:\n", " classmap[_lb] = {}\n", " for pid in range(len(segs)):\n", " classmap[_lb][str(pid)] = []\n", "\n", " for pid, seg in enumerate(segs):\n", " # lb_vol = nio.read_nii_bysitk(seg)\n", " lb_vol = sitk.GetArrayFromImage(sitk.ReadImage(seg))\n", " n_slice = lb_vol.shape[0]\n", " for slc in range(n_slice):\n", " for cls in range(len(LABEL_NAME)):\n", " if cls in lb_vol[slc, ...]:\n", " if np.sum( lb_vol[slc, ...] == cls) >= MIN_TP:\n", " classmap[LABEL_NAME[cls]][str(pid)].append(slc)\n", " print(f'pid {str(pid)} finished!')\n", " \n", " with open(fid, 'w') as fopen:\n", " json.dump(classmap, fopen)\n", " fopen.close() \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# MRI Image Normalization" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "## PLEASE RUN dcm_img_to_nii.sh to convert dicom to nii.gz\n", "! ./dcm_img_to_nii.sh" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [316. 316. 35.99999911]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [316. 316. 35.99999911]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [316. 316. 35.99999911]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [316. 316. 35.99999911]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [316. 316. 35.99999911]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [316. 316. 35.99999911]\n", "./CHAOST2/chaos_MR_T2_normalized/image_1.nii.gz has been saved\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [348. 348. 35.99999911]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [348. 348. 35.99999911]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [348. 348. 35.99999911]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [348. 348. 35.99999911]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [348. 348. 35.99999911]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 36) -> [348. 348. 35.99999911]\n", "./CHAOST2/chaos_MR_T2_normalized/image_10.nii.gz has been saved\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "./CHAOST2/chaos_MR_T2_normalized/image_13.nii.gz has been saved\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "./CHAOST2/chaos_MR_T2_normalized/image_15.nii.gz has been saved\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "./CHAOST2/chaos_MR_T2_normalized/image_19.nii.gz has been saved\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "./CHAOST2/chaos_MR_T2_normalized/image_2.nii.gz has been saved\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 26) -> [348. 348. 30.38961039]\n", "./CHAOST2/chaos_MR_T2_normalized/image_20.nii.gz has been saved\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 31) -> [340. 340. 32.20779221]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 31) -> [340. 340. 32.20779221]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 31) -> [340. 340. 32.20779221]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 31) -> [340. 340. 32.20779221]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 31) -> [340. 340. 32.20779221]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 31) -> [340. 340. 32.20779221]\n", "./CHAOST2/chaos_MR_T2_normalized/image_21.nii.gz has been saved\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 33) -> [356. 356. 37.28571347]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 33) -> [356. 356. 37.28571347]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 33) -> [356. 356. 37.28571347]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 33) -> [356. 356. 37.28571347]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 33) -> [356. 356. 37.28571347]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 33) -> [356. 356. 37.28571347]\n", "./CHAOST2/chaos_MR_T2_normalized/image_22.nii.gz has been saved\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 30) -> [348. 348. 35.06493506]\n", "./CHAOST2/chaos_MR_T2_normalized/image_3.nii.gz has been saved\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [332. 332. 33.8961039]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [332. 332. 33.8961039]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [332. 332. 33.8961039]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [332. 332. 33.8961039]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [332. 332. 33.8961039]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [332. 332. 33.8961039]\n", "./CHAOST2/chaos_MR_T2_normalized/image_31.nii.gz has been saved\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 39) -> [372. 372. 45.58441558]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 39) -> [372. 372. 45.58441558]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 39) -> [372. 372. 45.58441558]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 39) -> [372. 372. 45.58441558]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 39) -> [372. 372. 45.58441558]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 39) -> [372. 372. 45.58441558]\n", "./CHAOST2/chaos_MR_T2_normalized/image_32.nii.gz has been saved\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [356. 356. 33.8961039]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [356. 356. 33.8961039]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [356. 356. 33.8961039]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [356. 356. 33.8961039]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [356. 356. 33.8961039]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 29) -> [356. 356. 33.8961039]\n", "./CHAOST2/chaos_MR_T2_normalized/image_33.nii.gz has been saved\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [356. 356. 34.28571503]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [356. 356. 34.28571503]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [356. 356. 34.28571503]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [356. 356. 34.28571503]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [356. 356. 34.28571503]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [356. 356. 34.28571503]\n", "./CHAOST2/chaos_MR_T2_normalized/image_34.nii.gz has been saved\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 38) -> [332. 332. 44.41558442]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 38) -> [332. 332. 44.41558442]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 38) -> [332. 332. 44.41558442]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 38) -> [332. 332. 44.41558442]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 38) -> [332. 332. 44.41558442]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 38) -> [332. 332. 44.41558442]\n", "./CHAOST2/chaos_MR_T2_normalized/image_36.nii.gz has been saved\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 32) -> [300. 300. 37.4025974]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 32) -> [300. 300. 37.4025974]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 32) -> [300. 300. 37.4025974]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 32) -> [300. 300. 37.4025974]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 32) -> [300. 300. 37.4025974]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 32) -> [300. 300. 37.4025974]\n", "./CHAOST2/chaos_MR_T2_normalized/image_37.nii.gz has been saved\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 34) -> [348. 348. 39.74025974]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 34) -> [348. 348. 39.74025974]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 34) -> [348. 348. 39.74025974]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 34) -> [348. 348. 39.74025974]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 34) -> [348. 348. 39.74025974]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (320, 320, 34) -> [348. 348. 39.74025974]\n", "./CHAOST2/chaos_MR_T2_normalized/image_38.nii.gz has been saved\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 26) -> [324. 324. 30.38961039]\n", "./CHAOST2/chaos_MR_T2_normalized/image_39.nii.gz has been saved\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [340. 340. 35.06493506]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [340. 340. 35.06493506]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [340. 340. 35.06493506]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [340. 340. 35.06493506]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [340. 340. 35.06493506]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [1.25, 1.25, 7.7]\n", "Size (256, 256, 30) -> [340. 340. 35.06493506]\n", "./CHAOST2/chaos_MR_T2_normalized/image_5.nii.gz has been saved\n", "Spacing: (1.40625, 1.40625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (288, 288, 32) -> [324. 324. 33.24675325]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (288, 288, 32) -> [324. 324. 33.24675325]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (288, 288, 32) -> [324. 324. 33.24675325]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (288, 288, 32) -> [324. 324. 33.24675325]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (288, 288, 32) -> [324. 324. 33.24675325]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [1.25, 1.25, 7.7]\n", "Size (288, 288, 32) -> [324. 324. 33.24675325]\n", "./CHAOST2/chaos_MR_T2_normalized/image_8.nii.gz has been saved\n" ] } ], "source": [ "import copy\n", "\n", "IMG_FOLDER = \"./CHAOST2/niis/T2SPIR\" #, path of nii-like images from step 1\n", "OUT_FOLDER=\"./CHAOST2/chaos_MR_T2_normalized/\" # output directory\n", "\n", "imgs = glob.glob(IMG_FOLDER + f'/image_*.nii.gz')\n", "imgs = [ fid for fid in sorted(imgs) ]\n", "segs = [ fid for fid in sorted(glob.glob(IMG_FOLDER + f'/label_*.nii.gz')) ]\n", "\n", "pids = [pid.split(\"_\")[-1].split(\".\")[0] for pid in imgs]\n", "for img, seg in zip(imgs, segs):\n", " print(img, seg)\n", "\n", "os.makedirs(OUT_FOLDER, exist_ok = True)\n", " \n", "HIST_CUT_TOP = 0.5 # cut top 0.5% of intensity historgam to alleviate off-resonance effect\n", "\n", "NEW_SPA = [1.25, 1.25, 7.70] # unified voxel spacing\n", "\n", "for img_fid, seg_fid, pid in zip(imgs, segs, pids):\n", "\n", " resample_flg = True\n", "\n", " img_obj = sitk.ReadImage( img_fid )\n", " seg_obj = sitk.ReadImage( seg_fid )\n", "\n", " array = sitk.GetArrayFromImage(img_obj)\n", "\n", " # cut histogram\n", " hir = float(np.percentile(array, 100.0 - HIST_CUT_TOP))\n", " array[array > hir] = hir\n", "\n", " his_img_o = sitk.GetImageFromArray(array)\n", " his_img_o = copy_spacing_ori(img_obj, his_img_o)\n", "\n", " # resampling\n", " img_spa_ori = img_obj.GetSpacing()\n", " res_img_o = resample_by_res(his_img_o, [NEW_SPA[0], NEW_SPA[1], NEW_SPA[2]],\n", " interpolator = sitk.sitkLinear, logging = True)\n", " ## label\n", " lb_arr = sitk.GetArrayFromImage(seg_obj)\n", "\n", " # resampling\n", " res_lb_o = resample_lb_by_res(seg_obj, [NEW_SPA[0], NEW_SPA[1], NEW_SPA[2] ], interpolator = sitk.sitkLinear,\n", " ref_img = None, logging = True)\n", "\n", " # crop out rois\n", " res_img_a = s2n(res_img_o)\n", "\n", " crop_img_a = image_crop(res_img_a.transpose(1,2,0), [256, 256],\n", " referece_ctr_idx = [res_img_a.shape[1] // 2, res_img_a.shape[2] //2],\n", " padval = res_img_a.min(), only_2d = True).transpose(2,0,1)\n", "\n", " out_img_obj = copy_spacing_ori(res_img_o, sitk.GetImageFromArray(crop_img_a))\n", "\n", " res_lb_a = s2n(res_lb_o)\n", "\n", " crop_lb_a = image_crop(res_lb_a.transpose(1,2,0), [256, 256],\n", " referece_ctr_idx = [res_lb_a.shape[1] // 2, res_lb_a.shape[2] //2],\n", " padval = 0, only_2d = True).transpose(2,0,1)\n", "\n", " out_lb_obj = copy_spacing_ori(res_img_o, sitk.GetImageFromArray(crop_lb_a))\n", "\n", "\n", " out_img_fid = os.path.join( OUT_FOLDER, f'image_{pid}.nii.gz' )\n", " out_lb_fid = os.path.join( OUT_FOLDER, f'label_{pid}.nii.gz' ) \n", "\n", " # then save pre-processed images\n", " sitk.WriteImage(out_img_obj, out_img_fid, True) \n", " sitk.WriteImage(out_lb_obj, out_lb_fid, True) \n", " print(\"{} has been saved\".format(out_img_fid))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MRI Resampling and ROI" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "./CHAOST2/niis/T2SPIR/image_1.nii.gz ./CHAOST2/niis/T2SPIR/label_1.nii.gz\n", "(36, 256, 256) label shape (36, 256, 256)\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [0.5832054501488095, 0.5832054501488095, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [0.5832054501488095, 0.5832054501488095, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [0.5832054501488095, 0.5832054501488095, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [0.5832054501488095, 0.5832054501488095, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [0.5832054501488095, 0.5832054501488095, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Spacing: (1.54296875, 1.54296875, 7.699999809265137) -> [0.5832054501488095, 0.5832054501488095, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "./SABS/sabs_CT_normalized/image_1.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_1.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_10.nii.gz ./CHAOST2/niis/T2SPIR/label_10.nii.gz\n", "(36, 256, 256) label shape (36, 256, 256)\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [0.6422642299107143, 0.6422642299107143, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [0.6422642299107143, 0.6422642299107143, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [0.6422642299107143, 0.6422642299107143, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [0.6422642299107143, 0.6422642299107143, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [0.6422642299107143, 0.6422642299107143, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "Spacing: (1.69921875, 1.69921875, 7.699999809265137) -> [0.6422642299107143, 0.6422642299107143, 7.699999809265137]\n", "Size (254, 254, 36) -> [672. 672. 36.]\n", "./SABS/sabs_CT_normalized/image_10.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_10.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_13.nii.gz ./CHAOST2/niis/T2SPIR/label_13.nii.gz\n", "(30, 320, 320) label shape (30, 320, 320)\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "./SABS/sabs_CT_normalized/image_13.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_13.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_15.nii.gz ./CHAOST2/niis/T2SPIR/label_15.nii.gz\n", "(26, 256, 256) label shape (26, 256, 256)\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "./SABS/sabs_CT_normalized/image_15.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_15.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_19.nii.gz ./CHAOST2/niis/T2SPIR/label_19.nii.gz\n", "(30, 320, 320) label shape (30, 320, 320)\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "./SABS/sabs_CT_normalized/image_19.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_19.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_2.nii.gz ./CHAOST2/niis/T2SPIR/label_2.nii.gz\n", "(26, 320, 320) label shape (26, 320, 320)\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "./SABS/sabs_CT_normalized/image_2.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_2.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_20.nii.gz ./CHAOST2/niis/T2SPIR/label_20.nii.gz\n", "(26, 320, 320) label shape (26, 320, 320)\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 26) -> [672. 672. 26.]\n", "./SABS/sabs_CT_normalized/image_20.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_20.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_21.nii.gz ./CHAOST2/niis/T2SPIR/label_21.nii.gz\n", "(31, 256, 256) label shape (31, 256, 256)\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [0.627499534970238, 0.627499534970238, 8.0]\n", "Size (254, 254, 31) -> [672. 672. 31.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [0.627499534970238, 0.627499534970238, 8.0]\n", "Size (254, 254, 31) -> [672. 672. 31.]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [0.627499534970238, 0.627499534970238, 8.0]\n", "Size (254, 254, 31) -> [672. 672. 31.]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [0.627499534970238, 0.627499534970238, 8.0]\n", "Size (254, 254, 31) -> [672. 672. 31.]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [0.627499534970238, 0.627499534970238, 8.0]\n", "Size (254, 254, 31) -> [672. 672. 31.]\n", "Spacing: (1.66015625, 1.66015625, 8.0) -> [0.627499534970238, 0.627499534970238, 8.0]\n", "Size (254, 254, 31) -> [672. 672. 31.]\n", "./SABS/sabs_CT_normalized/image_21.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_21.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_22.nii.gz ./CHAOST2/niis/T2SPIR/label_22.nii.gz\n", "(33, 256, 256) label shape (33, 256, 256)\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [0.6570289248511905, 0.6570289248511905, 8.699999809265137]\n", "Size (254, 254, 33) -> [672. 672. 33.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [0.6570289248511905, 0.6570289248511905, 8.699999809265137]\n", "Size (254, 254, 33) -> [672. 672. 33.]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [0.6570289248511905, 0.6570289248511905, 8.699999809265137]\n", "Size (254, 254, 33) -> [672. 672. 33.]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [0.6570289248511905, 0.6570289248511905, 8.699999809265137]\n", "Size (254, 254, 33) -> [672. 672. 33.]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [0.6570289248511905, 0.6570289248511905, 8.699999809265137]\n", "Size (254, 254, 33) -> [672. 672. 33.]\n", "Spacing: (1.73828125, 1.73828125, 8.699999809265137) -> [0.6570289248511905, 0.6570289248511905, 8.699999809265137]\n", "Size (254, 254, 33) -> [672. 672. 33.]\n", "./SABS/sabs_CT_normalized/image_22.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_22.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_3.nii.gz ./CHAOST2/niis/T2SPIR/label_3.nii.gz\n", "(30, 320, 320) label shape (30, 320, 320)\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 30) -> [672. 672. 30.]\n", "./SABS/sabs_CT_normalized/image_3.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_3.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_31.nii.gz ./CHAOST2/niis/T2SPIR/label_31.nii.gz\n", "(29, 256, 256) label shape (29, 256, 256)\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "./SABS/sabs_CT_normalized/image_31.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_31.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_32.nii.gz ./CHAOST2/niis/T2SPIR/label_32.nii.gz\n", "(39, 256, 256) label shape (39, 256, 256)\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [0.6865583147321428, 0.6865583147321428, 9.0]\n", "Size (254, 254, 39) -> [672. 672. 39.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [0.6865583147321428, 0.6865583147321428, 9.0]\n", "Size (254, 254, 39) -> [672. 672. 39.]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [0.6865583147321428, 0.6865583147321428, 9.0]\n", "Size (254, 254, 39) -> [672. 672. 39.]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [0.6865583147321428, 0.6865583147321428, 9.0]\n", "Size (254, 254, 39) -> [672. 672. 39.]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [0.6865583147321428, 0.6865583147321428, 9.0]\n", "Size (254, 254, 39) -> [672. 672. 39.]\n", "Spacing: (1.81640625, 1.81640625, 9.0) -> [0.6865583147321428, 0.6865583147321428, 9.0]\n", "Size (254, 254, 39) -> [672. 672. 39.]\n", "./SABS/sabs_CT_normalized/image_32.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_32.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_33.nii.gz ./CHAOST2/niis/T2SPIR/label_33.nii.gz\n", "(29, 256, 256) label shape (29, 256, 256)\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [0.6570289248511905, 0.6570289248511905, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [0.6570289248511905, 0.6570289248511905, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [0.6570289248511905, 0.6570289248511905, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [0.6570289248511905, 0.6570289248511905, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [0.6570289248511905, 0.6570289248511905, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "Spacing: (1.73828125, 1.73828125, 9.0) -> [0.6570289248511905, 0.6570289248511905, 9.0]\n", "Size (254, 254, 29) -> [672. 672. 29.]\n", "./SABS/sabs_CT_normalized/image_33.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_33.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_34.nii.gz ./CHAOST2/niis/T2SPIR/label_34.nii.gz\n", "(30, 256, 256) label shape (30, 256, 256)\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [0.6570289248511905, 0.6570289248511905, 8.800000190734863]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [0.6570289248511905, 0.6570289248511905, 8.800000190734863]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [0.6570289248511905, 0.6570289248511905, 8.800000190734863]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [0.6570289248511905, 0.6570289248511905, 8.800000190734863]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [0.6570289248511905, 0.6570289248511905, 8.800000190734863]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Spacing: (1.73828125, 1.73828125, 8.800000190734863) -> [0.6570289248511905, 0.6570289248511905, 8.800000190734863]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "./SABS/sabs_CT_normalized/image_34.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_34.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_36.nii.gz ./CHAOST2/niis/T2SPIR/label_36.nii.gz\n", "(38, 256, 256) label shape (38, 256, 256)\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 38) -> [672. 672. 38.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 38) -> [672. 672. 38.]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 38) -> [672. 672. 38.]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 38) -> [672. 672. 38.]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 38) -> [672. 672. 38.]\n", "Spacing: (1.62109375, 1.62109375, 9.0) -> [0.6127348400297619, 0.6127348400297619, 9.0]\n", "Size (254, 254, 38) -> [672. 672. 38.]\n", "./SABS/sabs_CT_normalized/image_36.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_36.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_37.nii.gz ./CHAOST2/niis/T2SPIR/label_37.nii.gz\n", "(32, 256, 256) label shape (32, 256, 256)\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [0.5536760602678571, 0.5536760602678571, 9.0]\n", "Size (254, 254, 32) -> [672. 672. 32.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [0.5536760602678571, 0.5536760602678571, 9.0]\n", "Size (254, 254, 32) -> [672. 672. 32.]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [0.5536760602678571, 0.5536760602678571, 9.0]\n", "Size (254, 254, 32) -> [672. 672. 32.]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [0.5536760602678571, 0.5536760602678571, 9.0]\n", "Size (254, 254, 32) -> [672. 672. 32.]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [0.5536760602678571, 0.5536760602678571, 9.0]\n", "Size (254, 254, 32) -> [672. 672. 32.]\n", "Spacing: (1.46484375, 1.46484375, 9.0) -> [0.5536760602678571, 0.5536760602678571, 9.0]\n", "Size (254, 254, 32) -> [672. 672. 32.]\n", "./SABS/sabs_CT_normalized/image_37.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_37.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_38.nii.gz ./CHAOST2/niis/T2SPIR/label_38.nii.gz\n", "(34, 320, 320) label shape (34, 320, 320)\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 34) -> [672. 672. 34.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 34) -> [672. 672. 34.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 34) -> [672. 672. 34.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 34) -> [672. 672. 34.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 34) -> [672. 672. 34.]\n", "Spacing: (1.359375, 1.359375, 9.0) -> [0.6432756696428571, 0.6432756696428571, 9.0]\n", "Size (318, 318, 34) -> [672. 672. 34.]\n", "./SABS/sabs_CT_normalized/image_38.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_38.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_39.nii.gz ./CHAOST2/niis/T2SPIR/label_39.nii.gz\n", "(26, 256, 256) label shape (26, 256, 256)\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "Spacing: (1.58203125, 1.58203125, 9.0) -> [0.5979701450892857, 0.5979701450892857, 9.0]\n", "Size (254, 254, 26) -> [672. 672. 26.]\n", "./SABS/sabs_CT_normalized/image_39.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_39.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_5.nii.gz ./CHAOST2/niis/T2SPIR/label_5.nii.gz\n", "(30, 256, 256) label shape (30, 256, 256)\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [0.627499534970238, 0.627499534970238, 9.0]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [0.627499534970238, 0.627499534970238, 9.0]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [0.627499534970238, 0.627499534970238, 9.0]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [0.627499534970238, 0.627499534970238, 9.0]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [0.627499534970238, 0.627499534970238, 9.0]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "Spacing: (1.66015625, 1.66015625, 9.0) -> [0.627499534970238, 0.627499534970238, 9.0]\n", "Size (254, 254, 30) -> [672. 672. 30.]\n", "./SABS/sabs_CT_normalized/image_5.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_5.nii.gz has been saved\n", "./CHAOST2/niis/T2SPIR/image_8.nii.gz ./CHAOST2/niis/T2SPIR/label_8.nii.gz\n", "(32, 288, 288) label shape (32, 288, 288)\n", "Spacing: (1.40625, 1.40625, 8.0) -> [0.5984933035714286, 0.5984933035714286, 8.0]\n", "Size (286, 286, 32) -> [672. 672. 32.]\n", "Label values: [0 1 2 3 4]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [0.5984933035714286, 0.5984933035714286, 8.0]\n", "Size (286, 286, 32) -> [672. 672. 32.]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [0.5984933035714286, 0.5984933035714286, 8.0]\n", "Size (286, 286, 32) -> [672. 672. 32.]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [0.5984933035714286, 0.5984933035714286, 8.0]\n", "Size (286, 286, 32) -> [672. 672. 32.]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [0.5984933035714286, 0.5984933035714286, 8.0]\n", "Size (286, 286, 32) -> [672. 672. 32.]\n", "Spacing: (1.40625, 1.40625, 8.0) -> [0.5984933035714286, 0.5984933035714286, 8.0]\n", "Size (286, 286, 32) -> [672. 672. 32.]\n", "./SABS/sabs_CT_normalized/image_8.nii.gz has been saved\n", "./SABS/sabs_CT_normalized/label_8.nii.gz has been saved\n" ] } ], "source": [ "# SPA_FAC = (256 - 2 * BD_BIAS) / 512 # spacing factor\n", "BD_BIAS = 1\n", "scan_dir = OUT_FOLDER\n", "for res in (256, 672):\n", " if res == 672:\n", " scan_dir += \"_672\"\n", " resample_imgs(imgs, segs, pids, scan_dir,\n", " BD_BIAS, SPA_FAC=None, required_res=res)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MRI Classmap Generation" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pid 1 finished!\n", "pid 2 finished!\n", "pid 3 finished!\n", "pid 5 finished!\n", "pid 8 finished!\n", "pid 10 finished!\n", "pid 13 finished!\n", "pid 15 finished!\n", "pid 19 finished!\n", "pid 20 finished!\n", "pid 21 finished!\n", "pid 22 finished!\n", "pid 31 finished!\n", "pid 32 finished!\n", "pid 33 finished!\n", "pid 34 finished!\n", "pid 36 finished!\n", "pid 37 finished!\n", "pid 38 finished!\n", "pid 39 finished!\n" ] } ], "source": [ "IMG_BNAMES = (\"./CHAOST2/chaos_MR_T2_normalized/image_*.nii.gz\", \"./CHAOST2/chaos_MR_T2_normalized_672/image_*.nii.gz\")\n", "SEG_NAMES = (\"./CHAOST2/chaos_MR_T2_normalized/label_*.nii.gz\", \"./CHAOST2/chaos_MR_T2_normalized_672/label_*.nii.gz\")\n", "\n", "for IMG_BNAME, SEG_BNAME in zip(IMG_BNAMES, SEG_NAMES):\n", " imgs = glob.glob(IMG_BNAME)\n", " segs = glob.glob(SEG_BNAME)\n", " imgs = [ fid for fid in sorted(imgs, key = lambda x: int(x.split(\"_\")[-1].split(\".nii.gz\")[0]) ) ]\n", " segs = [ fid for fid in sorted(segs, key = lambda x: int(x.split(\"_\")[-1].split(\".nii.gz\")[0]) ) ]\n", "\n", "\n", " classmap = {}\n", " LABEL_NAME = [\"BG\", \"LIVER\", \"RK\", \"LK\", \"SPLEEN\"] \n", "\n", " MIN_TP = 1 # minimum number of positive label pixels to be recorded. Use >100 when training with manual annotations for more stable training\n", "\n", " fid = os.path.join(OUT_FOLDER,f'.classmap_{MIN_TP}.json') # name of the output file. \n", " for _lb in LABEL_NAME:\n", " classmap[_lb] = {}\n", " for _sid in segs:\n", " pid = _sid.split(\"_\")[-1].split(\".nii.gz\")[0]\n", " classmap[_lb][pid] = []\n", "\n", " for seg in segs:\n", " pid = seg.split(\"_\")[-1].split(\".nii.gz\")[0]\n", " lb_vol = sitk.GetArrayFromImage(sitk.ReadImage(seg))\n", " n_slice = lb_vol.shape[0]\n", " for slc in range(n_slice):\n", " for cls in range(len(LABEL_NAME)):\n", " if cls in lb_vol[slc, ...]:\n", " if np.sum( lb_vol[slc, ...]) >= MIN_TP:\n", " classmap[LABEL_NAME[cls]][str(pid)].append(slc)\n", " print(f'pid {str(pid)} finished!')\n", " \n", " with open(fid, 'w') as fopen:\n", " json.dump(classmap, fopen)\n", " fopen.close() \n", "\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Psuedo label generation for Encoder Finetuning" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import copy\n", "import skimage\n", "\n", "from skimage.segmentation import slic\n", "from skimage.segmentation import mark_boundaries\n", "from skimage.util import img_as_float\n", "from skimage.measure import label \n", "import scipy.ndimage.morphology as snm\n", "from skimage import io\n", "import argparse\n", "\n", "\n", "to01 = lambda x: (x - x.min()) / (x.max() - x.min())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Summary\n", "\n", "a. Generate a mask of the patient to avoid pseudolabels of empty regions in the background\n", "\n", "b. Generate superpixels as pseudolabels\n", "\n", "Configurations of pseudlabels\n", "\n", "default setting of minimum superpixel sizes\n", "`segs = seg_func(img[ii, ...], min_size = 400, sigma = 1)`\n", "\n", "you can also try other configs\n", "`segs = seg_func(img[ii, ...], min_size = 100, sigma = 0.8)`" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "MODE = 'MIDDLE' # minimum size of pesudolabels. 'MIDDLE' is the default setting\n", "\n", "# wrapper for process 3d image in 2d\n", "def superpix_vol(img, method = 'fezlen', **kwargs):\n", " \"\"\"\n", " loop through the entire volume\n", " assuming image with axis z, x, y\n", " \"\"\"\n", " if method =='fezlen':\n", " seg_func = skimage.segmentation.felzenszwalb\n", " else:\n", " raise NotImplementedError\n", " \n", " out_vol = np.zeros(img.shape)\n", " for ii in range(img.shape[0]):\n", " if MODE == 'MIDDLE':\n", " segs = seg_func(img[ii, ...], min_size = 400, sigma = 1)\n", " else:\n", " raise NotImplementedError\n", " out_vol[ii, ...] = segs\n", " \n", " return out_vol\n", "\n", "# thresholding the intensity values to get a binary mask of the patient\n", "def fg_mask2d(img_2d, thresh): # change this by your need\n", " mask_map = np.float32(img_2d > thresh)\n", " \n", " def getLargestCC(segmentation): # largest connected components\n", " labels = label(segmentation)\n", " assert( labels.max() != 0 ) # assume at least 1 CC\n", " largestCC = labels == np.argmax(np.bincount(labels.flat)[1:])+1\n", " return largestCC\n", " if mask_map.max() < 0.999:\n", " return mask_map\n", " else:\n", " post_mask = getLargestCC(mask_map)\n", " fill_mask = snm.binary_fill_holes(post_mask)\n", " return fill_mask\n", "\n", "# remove superpixels within the empty regions\n", "def superpix_masking(raw_seg2d, mask2d):\n", " raw_seg2d = np.int32(raw_seg2d)\n", " lbvs = np.unique(raw_seg2d)\n", " max_lb = lbvs.max()\n", " raw_seg2d[raw_seg2d == 0] = max_lb + 1\n", " lbvs = list(lbvs)\n", " lbvs.append( max_lb )\n", " raw_seg2d = raw_seg2d * mask2d\n", " lb_new = 1\n", " out_seg2d = np.zeros(raw_seg2d.shape)\n", " for lbv in lbvs:\n", " if lbv == 0:\n", " continue\n", " else:\n", " out_seg2d[raw_seg2d == lbv] = lb_new\n", " lb_new += 1\n", " \n", " return out_seg2d\n", " \n", "def superpix_wrapper(img, verbose = False, fg_thresh = 1e-4):\n", " raw_seg = superpix_vol(img)\n", " fg_mask_vol = np.zeros(raw_seg.shape)\n", " processed_seg_vol = np.zeros(raw_seg.shape)\n", " for ii in range(raw_seg.shape[0]):\n", " if verbose:\n", " print(\"doing {} slice\".format(ii))\n", " _fgm = fg_mask2d(img[ii, ...], fg_thresh )\n", " _out_seg = superpix_masking(raw_seg[ii, ...], _fgm)\n", " fg_mask_vol[ii] = _fgm\n", " processed_seg_vol[ii] = _out_seg\n", " return fg_mask_vol, processed_seg_vol\n", " \n", "# copy spacing and orientation info between sitk objects\n", "def copy_info(src, dst):\n", " dst.SetSpacing(src.GetSpacing())\n", " dst.SetOrigin(src.GetOrigin())\n", " dst.SetDirection(src.GetDirection())\n", " # dst.CopyInfomation(src)\n", " return dst\n", "\n", "\n", "def strip_(img, lb):\n", " img = np.int32(img)\n", " if isinstance(lb, float):\n", " lb = int(lb)\n", " return np.float32(img == lb) * float(lb)\n", " elif isinstance(lb, list):\n", " out = np.zeros(img.shape)\n", " for _lb in lb:\n", " out += np.float32(img == int(_lb)) * float(_lb)\n", " \n", " return out\n", " else:\n", " raise Exception" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "DATASET_CONFIG = {'SABS':{\n", " 'img_bname': f'./SABS/sabs_CT_normalized/image_*.nii.gz',\n", " 'out_dir': './SABS/sabs_CT_normalized',\n", " 'fg_thresh': 1e-4\n", " },\n", " 'CHAOST2':{\n", " 'img_bname': f'./CHAOST2/chaos_MR_T2_normalized/image_*.nii.gz',\n", " 'out_dir': './CHAOST2/chaos_MR_T2_normalized',\n", " 'fg_thresh': 1e-4 + 50\n", " },\n", " 'SABS_672':{\n", " 'img_bname': f'./SABS/sabs_CT_normalized_672/image_*.nii.gz',\n", " 'out_dir': './SABS/sabs_CT_normalized_672',\n", " 'fg_thresh': 1e-4\n", " },\n", " 'CHAOST2_672':{\n", " 'img_bname': f'./CHAOST2/chaos_MR_T2_normalized_672/image_*.nii.gz',\n", " 'out_dir': './CHAOST2/chaos_MR_T2_normalized_672',\n", " 'fg_thresh': 1e-4 + 50\n", " }\n", "}\n", "\n", "for DOMAIN in DATASET_CONFIG.keys():\n", " img_bname = DATASET_CONFIG[DOMAIN]['img_bname']\n", " imgs = glob.glob(img_bname)\n", " out_dir = DATASET_CONFIG[DOMAIN]['out_dir']\n", "\n", " imgs = sorted(imgs, key = lambda x: int(x.split('_')[-1].split('.nii.gz')[0]) )\n", " print(imgs)\n", "\n", " # Generate pseudolabels for every image and save them\n", " for img_fid in imgs:\n", " # img_fid = imgs[0]\n", "\n", " idx = os.path.basename(img_fid).split(\"_\")[-1].split(\".nii.gz\")[0]\n", " im_obj = sitk.ReadImage(img_fid)\n", "\n", " out_fg, out_seg = superpix_wrapper(sitk.GetArrayFromImage(im_obj), fg_thresh = DATASET_CONFIG[DOMAIN]['fg_thresh'] )\n", " out_fg_o = sitk.GetImageFromArray(out_fg ) \n", " out_seg_o = sitk.GetImageFromArray(out_seg )\n", "\n", " out_fg_o = copy_info(im_obj, out_fg_o)\n", " out_seg_o = copy_info(im_obj, out_seg_o)\n", " seg_fid = os.path.join(out_dir, f'superpix-{MODE}_{idx}.nii.gz')\n", " msk_fid = os.path.join(out_dir, f'fgmask_{idx}.nii.gz')\n", " sitk.WriteImage(out_fg_o, msk_fid)\n", " sitk.WriteImage(out_seg_o, seg_fid)\n", " print(f'image with id {idx} has finished')\n" ] } ], "metadata": { "kernelspec": { "display_name": "lev", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.8" } }, "nbformat": 4, "nbformat_minor": 2 }