{"cells":[{"metadata":{"trusted":true,"_uuid":"12eb2fcbd82625912bcc13c31284c2ef1446e9db","collapsed":true},"cell_type":"markdown","source":"# DATA Preprocessing for seamantic segmentation \n* Make Img Data Loader\n* Make label mask for training"},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\nimport pydicom as pdcm\nimport pylab\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\ninput_path = \"../input/\"\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"434d51c2ec5f690b181a2c9d5e9d70c271ec56ca"},"cell_type":"markdown","source":"## Data loader with pydicom"},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"430a2b041ef5ca464b918fdd0f358c5d2f91a8f7"},"cell_type":"code","source":"def load_dcm_data(filename):\n    # attr = [\"Rows\", \"Columns\", \"PixelSpacing\"]\n    dcm_data = pdcm.read_file(filename)\n    dcmImg = dcm_data.pixel_array\n    dcm_row = int(dcm_data.get(\"Rows\"))\n    dcm_colum = int(dcm_data.get(\"Columns\"))\n    dcm_spacing = dcm_data.get(\"PixelSpacing\")\n    dcm_spacing = [float(dcm_spacing[0]), float(dcm_spacing[1])]\n\n    return dcmImg, [dcm_row, dcm_colum, dcm_spacing[0], dcm_spacing[1]]","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"train_labels_info = pd.read_csv(input_path + 'stage_1_train_labels.csv')\ntrain_ID_list = train_labels_info['patientId'].tolist()\ntrain_target = train_labels_info['Target'].tolist()\ntrain_UniqID = train_labels_info['patientId'].unique().tolist()\n\ntrain_mask_info = []\nfor x, y, w, h in zip(train_labels_info['x'].tolist(), train_labels_info['y'].tolist(), train_labels_info['width'].tolist(), train_labels_info['height'].tolist()):\n    if np.isnan(x):\n        x, y, w, h = 0, 0, 0, 0\n    \n    train_mask_info.append([int(x), int(y), int(w), int(h)])\n# train_mask_info.extend(train_labels_info['x'].tolist())\n# train_mask_info.extend(train_labels_info['y'].tolist())\n# train_mask_info.extend(train_labels_info['width'].tolist())\n# train_mask_info.extend(train_labels_info['height'].tolist())\nprint(train_mask_info[5])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d7668153da699e11b473098094263156e1519e74"},"cell_type":"code","source":"t = 0\ntempID = [] #train_ID_list[4] \nzeroMask = np.zeros([1024, 1024])\ntrainImage = np.zeros([1024, 1024])\n\n# for ID, mInfo in zip(train_ID_list, train_mask_info): \nID = train_ID_list[5] \nmInfo = train_mask_info[5]\n\nif ID in tempID:\n    t -= 1\n    zeroMask[int(mInfo[1]):int(mInfo[1] + mInfo[3]),\n            int(mInfo[0]):int(mInfo[0] + mInfo[2])] = 1\n\nelse:\n    filename = \"../input/stage_1_train_images/\" + ID + '.dcm'\n    train_img, train_info = load_dcm_data(filename)\n\n    trainImage[:,:] = train_img.copy()\n    zeroMask[int(mInfo[1]):int(mInfo[1] + mInfo[3]), \n             int(mInfo[0]):int(mInfo[0] + mInfo[2])] = 1\n\n\ntempID = ID\nt += 1\n\nfig, ax = plt.subplots(1, 2)\nax[0].imshow(train_img)\nax[1].imshow(zeroMask)\n\nplt.show()\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"31eeede2ef79fea99de5799c120399950beefc65"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"7c7c8fb5de498674055341f2a4a75749e5626634"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}