{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport os\nimport imageio\nfrom matplotlib import pyplot as plt\nimport scipy.ndimage as ndi\nimport pydicom","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"os.listdir('../input/rsna-intracranial-hemorrhage-detection')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv('../input/rsna-intracranial-hemorrhage-detection/stage_1_train.csv')\ntest = pd.read_csv('../input/rsna-intracranial-hemorrhage-detection/stage_1_sample_submission.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train['patient_id'] = train.ID.str.split('_', expand=True)[1]\ntrain['h_type'] =  train.ID.str.split('_', expand=True)[2]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.tail()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_dir = '../input/rsna-intracranial-hemorrhage-detection/stage_1_train_images/'\nim = imageio.imread(train_dir + 'ID_5c8b5d701.dcm')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"pdim = pydicom.dcmread(train_dir + 'ID_000039fa0.dcm')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(pdim.pixel_array.min(),pdim.pixel_array.max())\nprint(im.min(),im.max())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"fig, axis = plt.subplots(1, 2, figsize=(15,5))\n#plt.figure(figsize=(10,10))\naxis[0].imshow(pdim.pixel_array, cmap='gray')\naxis[1].imshow(im, cmap='gray')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(10,10))\nplt.imshow(im, cmap='gray')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im.flatten.max()-im.flatten.min()+1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"hist = ndi.histogram(im, min=im.flatten().min(),\n                         max=im.flatten().max(),\n                         bins=im.flatten().max()-im.flatten().min()+1)\ncdf = hist.cumsum() / hist.sum()\ncdf.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im_equalized = cdf[im] * im.flatten().max()\nfig, axes = plt.subplots(1, 2, figsize=(15,5))\naxes[0].imshow(im, cmap='gray')\naxes[1].imshow(im_equalized, cmap='gray')\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im_blood = np.where((im>=30) & (im<=45), im*50, 0)\nplt.imshow(im_blood, cmap=plt.cm.bone)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im_bone = np.where(im>700, im, 0)\nplt.imshow(im_bone, cmap='gray')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.hist(im.flatten(),bins=30)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"pdim.pixel_array","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"pdim.pixel_array.flatten()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.hist(im.flatten())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.imshow(pdim.pixel_array)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.imshow(im)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im.meta","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"\nplt.imshow(im)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.imshow(pdim.pixel_array)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im.meta","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im.meta['Modality']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im.meta.keys()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(10,10))\nplt.imshow(im, cmap=plt.cm.bone)\nplt.axis('off')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im.dtype","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"hist = ndi.histogram(im, min=-2000,\n                     max=2500,\n                     bins=4500)\nhist.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.plot(hist)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(15,5))\nplt.hist(im)\nplt.xticks(np.arange(-1200, 1500, 100.0))\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"np.where(im>750, im, 0).shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"\nim[im<-750].shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"fig, axes = plt.subplots(1, 8,figsize=(15,15))\naxes[0].imshow(im, cmap=plt.cm.bone)\n#axes[1].imshow(np.where(im<=-750, im, 0),cmap=plt.cm.bone)\naxes[1].imshow(np.where((im>-1000) & (im<-800), im, 0),cmap=plt.cm.bone)\naxes[2].imshow(np.where((im>-775) & (im<-550), im, 0),cmap=plt.cm.bone)\naxes[3].imshow(np.where((im>-500) & (im<-300), im, 0),cmap=plt.cm.bone)\naxes[4].imshow(np.where((im>-250) & (im<-50), im, 0),cmap=plt.cm.bone)\naxes[5].imshow(np.where((im>-5) & (im<200), im, 0),cmap=plt.cm.bone)\n#axes[2].imshow(np.where(im>-750, im, 0),cmap=plt.cm.bone)\naxes[6].imshow(np.where((im>225) & (im<450), im, 0),cmap=plt.cm.bone)\naxes[7].imshow(np.where((im>1000) & (im<2500), im, 0),cmap=plt.cm.bone)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(10,10))\nplt.imshow(np.where((im>-5) & (im<200), im, 0), cmap=plt.cm.bone)\nplt.axis('off')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"nlabels","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"filt=ndi.gaussian_filter(im,sigma=1)\nmask = filt < -750\nlabels, nlabels = ndi.label(mask)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.imshow(labels, cmap='rainbow')\nplt.axis('off')\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im = imageio.imread(train_dir + 'ID_5fc337950.dcm')\nplt.figure(figsize=(10,10))\nplt.imshow(im, cmap=plt.cm.bone)\nplt.axis('off')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"im.meta","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(15,5))\nplt.hist(im)\nplt.xticks(np.arange(-1050, 1700, 100.0))\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(10,10))\nplt.imshow(np.where((im>-5) & (im<200), im, 0), cmap=plt.cm.bone)\nplt.axis('off')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"fig, axes = plt.subplots(1, 4,figsize=(15,15))\naxes[0].imshow(im, cmap=plt.cm.bone)\n#axes[1].imshow(np.where(im<=-750, im, 0),cmap=plt.cm.bone)\naxes[1].imshow(np.where((im>40) & (im<600), im, 0),cmap=plt.cm.bone)\naxes[2].imshow(np.where((im>80) & (im<200), im, 0),cmap=plt.cm.bone)\naxes[3].imshow(np.where((im>600) & (im<2800), im, 0),cmap=plt.cm.bone)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":1}