{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import warnings\nwarnings.filterwarnings(\"ignore\", category=DeprecationWarning)\nwarnings.filterwarnings(\"ignore\", category=UserWarning)\nwarnings.filterwarnings(\"ignore\", category=FutureWarning)","metadata":{"execution":{"iopub.status.busy":"2022-07-30T08:24:56.55449Z","iopub.execute_input":"2022-07-30T08:24:56.55523Z","iopub.status.idle":"2022-07-30T08:24:56.562618Z","shell.execute_reply.started":"2022-07-30T08:24:56.555179Z","shell.execute_reply":"2022-07-30T08:24:56.561396Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# program train/test images","metadata":{}},{"cell_type":"code","source":"import pydicom\nimport os\nimport numpy as np\nfrom PIL import Image\nfrom matplotlib import pyplot\nimport io\nimport matplotlib\nimport SimpleITK as sitk\nfrom skimage import io\nfrom tqdm import tqdm\n\npath = ['test_images','train_images']\nfor i in path:\n    base_fold = '../input/rsna-2022-cervical-spine-fracture-detection/'+i\n    try:\n        os.mkdir(i)\n    except:\n        pass\n    for folder in tqdm(os.listdir(base_fold)):\n        subfolder = os.path.join(base_fold,folder)\n#         print(os.path.join(i,folder))\n        try:\n            os.mkdir(os.path.join(i,folder))\n        except:\n            pass\n        \n        for filename in os.listdir(subfolder):\n#             print(os.path.join(subfolder,filename))\n            \n            itk_img = sitk.ReadImage(os.path.join(subfolder,filename))\n            data_img = sitk.GetArrayFromImage(itk_img)\n            data_img = data_img.transpose(1,2,0)[:,:,0] \n        \n        \n            stem, suffix = os.path.splitext(filename)\n            stem += '.jpg'\n\n#             matplotlib.image.imsave(os.path.join(os.path.join(i,folder),stem), data_img)\n            matplotlib.image.imsave(os.path.join(os.path.join(i,folder),stem), data_img,cmap=pyplot.cm.bone)\n           \n\n                 ","metadata":{"execution":{"iopub.status.busy":"2022-07-30T16:33:06.558489Z","iopub.execute_input":"2022-07-30T16:33:06.559701Z","iopub.status.idle":"2022-07-30T16:33:25.679564Z","shell.execute_reply.started":"2022-07-30T16:33:06.559569Z","shell.execute_reply":"2022-07-30T16:33:25.678085Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# copy csv files","metadata":{}},{"cell_type":"code","source":"import os\nimport shutil\npath = '../input/rsna-2022-cervical-spine-fracture-detection'                          \ndirs = os.listdir(path)                    \nfor i in dirs:                             \n    if os.path.splitext(i)[1] == \".csv\":   \n        shutil.copyfile(path+'/'+i, './'+i)                          ","metadata":{"execution":{"iopub.status.busy":"2022-07-30T08:11:18.5437Z","iopub.status.idle":"2022-07-30T08:11:18.544863Z","shell.execute_reply.started":"2022-07-30T08:11:18.544621Z","shell.execute_reply":"2022-07-30T08:11:18.544643Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# program segmentations as npy","metadata":{}},{"cell_type":"code","source":"import matplotlib\nimport os\nfrom matplotlib import pylab as plt\nimport nibabel as nib\nfrom nibabel import nifti1\nfrom nibabel.viewers import OrthoSlicer3D\nimport numpy as np\nfrom tqdm import tqdm\n\npath='../input/rsna-2022-cervical-spine-fracture-detection/segmentations'\ntry:\n    os.mkdir('segmentations')\nexcept:\n    pass\ndirs = os.listdir(path)   \nfor filename in tqdm(dirs):\n    img=nib.load(os.path.join(path,filename))\n    \n    width,height,queue=img.dataobj.shape\n    data = np.array(img.dataobj)\n    stem, suffix = os.path.splitext(filename)\n    stem += '.npy'\n    np.save('segmentations/'+stem,data)\n","metadata":{"execution":{"iopub.status.busy":"2022-07-30T08:25:00.676922Z","iopub.execute_input":"2022-07-30T08:25:00.677581Z","iopub.status.idle":"2022-07-30T08:25:10.408359Z","shell.execute_reply.started":"2022-07-30T08:25:00.677543Z","shell.execute_reply":"2022-07-30T08:25:10.407174Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# How to read npy?","metadata":{}},{"cell_type":"code","source":"import numpy as np\nfrom tqdm import tqdm\n\n# load\npath = './segmentations'\ndirs = os.listdir(path)   \nfor filename in tqdm(dirs):\n    img=np.load(os.path.join(path,filename))\n    \n    # show\n    plt.figure(figsize=(16,9))\n    num = 1\n    queue = img.shape[2]\n    x = 5\n    y = 10\n    for i in range(0,queue,8):#也可以取10等，you also can get the figure per 10 arrays\n        img_arr=img[:,:,i]\n        plt.subplot(x,y,num)\n        plt.imshow(img_arr,cmap='gray')\n        num+=1\n        if num >= x*y:\n            break\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2022-07-30T08:25:13.177757Z","iopub.execute_input":"2022-07-30T08:25:13.178181Z","iopub.status.idle":"2022-07-30T08:25:37.76567Z","shell.execute_reply.started":"2022-07-30T08:25:13.178147Z","shell.execute_reply":"2022-07-30T08:25:37.761223Z"},"trusted":true},"execution_count":null,"outputs":[]}]}