{
  "id": 347657,
  "title": "pydicom runtime error",
  "url": "/competitions/rsna-2022-cervical-spine-fracture-detection/discussion/347657",
  "author_name": "cbarb15",
  "post_date": "2022-08-25T02:15:00.723000",
  "votes": 1,
  "comment_count": 5,
  "views": 0,
  "content": "<p>I am extracting the images from the dicom files and saving them in their own directories in the /kaggle/working/ directory.   When I run this code in pycharm on my machine, it works just fine and saves the images to the directories.  </p>\n<pre><code>`CURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))`\n</code></pre>\n<p>When running this code in my notebook, I get this error:<br>\nThe following handlers are available to decode the pixel data however they are missing required dependcies: GDCM (req. GDCM), pylibjpeg (req.)</p>\n<p>This is my first time working with the pydicom library, so I am not quite sure why it is doing this in the kernal, but working fine on my machine. </p>\n<p>I saw this comment on another thread with some conda helpers and I added them, but now get </p>\n<pre><code>Downloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/libjpeg-turbo-2.1.0-h7f98852_0.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/libgcc-ng-9.3.0-h2828fa1_19.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/gdcm-2.8.9-py37h500ead1_1.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/conda-4.10.1-py37h89c1867_0.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/certifi-2020.12.5-py37h89c1867_1.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/openssl-1.1.1k-h7f98852_0.tar.bz2\n</code></pre>\n<p>Here is my code now:</p>\n<pre><code>!conda install 'libjpeg-turbo-2.1.0-h7f98852_0.tar.bz2' -c conda-forge -y\n!conda install 'libgcc-ng-9.3.0-h2828fa1_19.tar.bz2' -c conda-forge -y\n!conda install 'gdcm-2.8.9-py37h500ead1_1.tar.bz2' -c conda-forge -y\n!conda install 'conda-4.10.1-py37h89c1867_0.tar.bz2' -c conda-forge -y\n!conda install 'certifi-2020.12.5-py37h89c1867_1.tar.bz2' -c conda-forge -y\n!conda install 'openssl-1.1.1k-h7f98852_0.tar.bz2' -c conda-forge -y\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom pydicom import dcmread\nimport os, shutil\nfrom PIL import Image\n\nCURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_TRAIN_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))\n</code></pre>",
  "messages": [
    {
      "id": 1912853,
      "postDate": "2022-08-25T02:15:00.723Z",
      "content": "<p>I am extracting the images from the dicom files and saving them in their own directories in the /kaggle/working/ directory.   When I run this code in pycharm on my machine, it works just fine and saves the images to the directories.  </p>\n<pre><code>`CURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))`\n</code></pre>\n<p>When running this code in my notebook, I get this error:<br>\nThe following handlers are available to decode the pixel data however they are missing required dependcies: GDCM (req. GDCM), pylibjpeg (req.)</p>\n<p>This is my first time working with the pydicom library, so I am not quite sure why it is doing this in the kernal, but working fine on my machine. </p>\n<p>I saw this comment on another thread with some conda helpers and I added them, but now get </p>\n<pre><code>Downloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/libjpeg-turbo-2.1.0-h7f98852_0.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/libgcc-ng-9.3.0-h2828fa1_19.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/gdcm-2.8.9-py37h500ead1_1.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/conda-4.10.1-py37h89c1867_0.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/certifi-2020.12.5-py37h89c1867_1.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/openssl-1.1.1k-h7f98852_0.tar.bz2\n</code></pre>\n<p>Here is my code now:</p>\n<pre><code>!conda install 'libjpeg-turbo-2.1.0-h7f98852_0.tar.bz2' -c conda-forge -y\n!conda install 'libgcc-ng-9.3.0-h2828fa1_19.tar.bz2' -c conda-forge -y\n!conda install 'gdcm-2.8.9-py37h500ead1_1.tar.bz2' -c conda-forge -y\n!conda install 'conda-4.10.1-py37h89c1867_0.tar.bz2' -c conda-forge -y\n!conda install 'certifi-2020.12.5-py37h89c1867_1.tar.bz2' -c conda-forge -y\n!conda install 'openssl-1.1.1k-h7f98852_0.tar.bz2' -c conda-forge -y\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom pydicom import dcmread\nimport os, shutil\nfrom PIL import Image\n\nCURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_TRAIN_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))\n</code></pre>",
      "rawMarkdown": "I am extracting the images from the dicom files and saving them in their own directories in the /kaggle/working/ directory.   When I run this code in pycharm on my machine, it works just fine and saves the images to the directories.  \n```\n`CURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))`\n```\n\nWhen running this code in my notebook, I get this error:\nThe following handlers are available to decode the pixel data however they are missing required dependcies: GDCM (req. GDCM), pylibjpeg (req.)\n\nThis is my first time working with the pydicom library, so I am not quite sure why it is doing this in the kernal, but working fine on my machine. \n\n\nI saw this comment on another thread with some conda helpers and I added them, but now get \n```\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/libjpeg-turbo-2.1.0-h7f98852_0.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/libgcc-ng-9.3.0-h2828fa1_19.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/gdcm-2.8.9-py37h500ead1_1.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/conda-4.10.1-py37h89c1867_0.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/certifi-2020.12.5-py37h89c1867_1.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/openssl-1.1.1k-h7f98852_0.tar.bz2\n```\n\nHere is my code now:\n\n```\n!conda install 'libjpeg-turbo-2.1.0-h7f98852_0.tar.bz2' -c conda-forge -y\n!conda install 'libgcc-ng-9.3.0-h2828fa1_19.tar.bz2' -c conda-forge -y\n!conda install 'gdcm-2.8.9-py37h500ead1_1.tar.bz2' -c conda-forge -y\n!conda install 'conda-4.10.1-py37h89c1867_0.tar.bz2' -c conda-forge -y\n!conda install 'certifi-2020.12.5-py37h89c1867_1.tar.bz2' -c conda-forge -y\n!conda install 'openssl-1.1.1k-h7f98852_0.tar.bz2' -c conda-forge -y\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom pydicom import dcmread\nimport os, shutil\nfrom PIL import Image\n\nCURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_TRAIN_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))\n\n```",
      "votes": 1
    },
    {
      "id": 1913274,
      "postDate": "2022-08-25T09:07:27.840Z",
      "content": "<blockquote>\n  <h1>To read compressed dicom files:</h1>\n  <p>'''Online'''</p>\n  <h1>! pip install python-gdcm</h1>\n  <h1>! pip install pylibjpeg pylibjpeg-libjpeg pydicom</h1>\n  <p>'''Offline (need to add dataset --&gt; for-pydicom)'''<br>\n  !pip install -qU ../input/for-pydicom/python_gdcm-3.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl ../input/for-pydicom/pylibjpeg-1.4.0-py3-none-any.whl --find-links frozen_packages --no-index</p>\n</blockquote>\n<p>You can find this in my EDA notebook. <a href=\"https://www.kaggle.com/code/samuelcortinhas/rsna-fracture-detection-in-depth-eda\" target=\"_blank\">https://www.kaggle.com/code/samuelcortinhas/rsna-fracture-detection-in-depth-eda</a></p>",
      "rawMarkdown": "> # To read compressed dicom files:\n\n> '''Online'''\n> #! pip install python-gdcm\n> #! pip install pylibjpeg pylibjpeg-libjpeg pydicom\n\n> '''Offline (need to add dataset --> for-pydicom)'''\n> !pip install -qU ../input/for-pydicom/python_gdcm-3.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl ../input/for-pydicom/pylibjpeg-1.4.0-py3-none-any.whl --find-links frozen_packages --no-index\n\nYou can find this in my EDA notebook. https://www.kaggle.com/code/samuelcortinhas/rsna-fracture-detection-in-depth-eda",
      "replies": [
        {
          "id": 1914026,
          "postDate": "2022-08-25T16:59:31.173Z",
          "content": "<p>Thanks you Samuel! I will try it tonight.   </p>",
          "rawMarkdown": "Thanks you Samuel! I will try it tonight.   "
        },
        {
          "id": 1914315,
          "postDate": "2022-08-26T01:58:07.023Z",
          "rawMarkdown": "",
          "isDeleted": true
        },
        {
          "id": 1915406,
          "postDate": "2022-08-27T00:26:18.637Z",
          "content": "<p>I have tried both online and offline and both say that the requirements are already satisfied in the site-packages and I'm still getting the error.  Here is my code and the logs</p>\n<pre><code>`# 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\n\n# !pip install -qU ../input/for-pydicom/python_gdcm-3.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl \n# !pip install ../input/pylibjpeg-whl/pylibjpeg-1.4.0-py3-none-any.whl --find-links frozen_packages --no-index\n\n! pip install python-gdcm\n! pip install pylibjpeg pylibjpeg-libjpeg pydicom\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom pydicom import dcmread\nimport os, shutil\nfrom PIL import Image\n\nCURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_TRAIN_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))\n</code></pre>\n<p>Requirement already satisfied: python-gdcm in /opt/conda/lib/python3.7/site-packages (3.0.14)<br>\nWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <a href=\"https://pip.pypa.io/warnings/venv\" target=\"_blank\">https://pip.pypa.io/warnings/venv</a> class=\"ansi-yellow-fg\"&gt;<br>\nRequirement already satisfied: pylibjpeg in /opt/conda/lib/python3.7/site-packages (1.4.0)<br>\nCollecting pylibjpeg-libjpeg<br>\n  Downloading pylibjpeg_libjpeg-1.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB)<br>\n     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 MB 6.9 MB/s eta 0:00:0000:0100:010m<br>\nRequirement already satisfied: pydicom in /opt/conda/lib/python3.7/site-packages (2.3.0)<br>\nRequirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from pylibjpeg) (1.21.6)<br>\nInstalling collected packages: pylibjpeg-libjpeg<br>\nSuccessfully installed pylibjpeg-libjpeg-1.3.1<br>\nWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <a href=\"https://pip.pypa.io/warnings/venv\" target=\"_blank\">https://pip.pypa.io/warnings/venv</a> class=\"ansi-yellow-fg\"&gt;<br>\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.17625<br>\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.3850<br>\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.2286<br>\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.14435</p>\n<hr>\n<p>RuntimeError                              Traceback (most recent call last)<br>\n/tmp/ipykernel_17/931439731.py in <br>\n     32         with open(IMAGE_PATH, 'rb') as infile:<br>\n     33             dataset = dcmread(infile)<br>\n---&gt; 34             new_image = dataset.pixel_array.astype(float)<br>\n     35             scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0<br>\n     36             scaled_image = np.uint8(scaled_image)</p>\n<p>/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in pixel_array(self)<br>\n   1885             :class:<code>numpy.ndarray</code>.<br>\n   1886         \"\"\"<br>\n-&gt; 1887         self.convert_pixel_data()<br>\n   1888         return cast(\"numpy.ndarray\", self._pixel_array)<br>\n   1889 </p>\n<p>/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in convert_pixel_data(self, handler_name)<br>\n   1442             self._convert_pixel_data_using_handler(handler_name)<br>\n   1443         else:<br>\n-&gt; 1444             self._convert_pixel_data_without_handler()<br>\n   1445 <br>\n   1446     def _convert_pixel_data_using_handler(self, name: str) -&gt; None:</p>\n<p>/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in _convert_pixel_data_without_handler(self)<br>\n   1529                 )<br>\n   1530 <br>\n-&gt; 1531             raise RuntimeError(msg + ', '.join(pkg_msg))<br>\n   1532 <br>\n   1533         last_exception = None</p>\n<p>RuntimeError: The following handlers are available to decode the pixel data however they are missing required dependencies: GDCM (req. ), pylibjpeg (req. )</p>",
          "rawMarkdown": "I have tried both online and offline and both say that the requirements are already satisfied in the site-packages and I'm still getting the error.  Here is my code and the logs\n```\n`# 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\n\n# !pip install -qU ../input/for-pydicom/python_gdcm-3.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl \n# !pip install ../input/pylibjpeg-whl/pylibjpeg-1.4.0-py3-none-any.whl --find-links frozen_packages --no-index\n\n! pip install python-gdcm\n! pip install pylibjpeg pylibjpeg-libjpeg pydicom\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom pydicom import dcmread\nimport os, shutil\nfrom PIL import Image\n\nCURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_TRAIN_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))\n```\n\nRequirement already satisfied: python-gdcm in /opt/conda/lib/python3.7/site-packages (3.0.14)\nWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv class=\"ansi-yellow-fg\">\nRequirement already satisfied: pylibjpeg in /opt/conda/lib/python3.7/site-packages (1.4.0)\nCollecting pylibjpeg-libjpeg\n  Downloading pylibjpeg_libjpeg-1.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB)\n     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 MB 6.9 MB/s eta 0:00:0000:0100:010m\nRequirement already satisfied: pydicom in /opt/conda/lib/python3.7/site-packages (2.3.0)\nRequirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from pylibjpeg) (1.21.6)\nInstalling collected packages: pylibjpeg-libjpeg\nSuccessfully installed pylibjpeg-libjpeg-1.3.1\nWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv class=\"ansi-yellow-fg\">\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.17625\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.3850\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.2286\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.14435\n\n---------------------------------------------------------------------------\nRuntimeError                              Traceback (most recent call last)\n/tmp/ipykernel_17/931439731.py in <module>\n     32         with open(IMAGE_PATH, 'rb') as infile:\n     33             dataset = dcmread(infile)\n---> 34             new_image = dataset.pixel_array.astype(float)\n     35             scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n     36             scaled_image = np.uint8(scaled_image)\n\n/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in pixel_array(self)\n   1885             :class:`numpy.ndarray`.\n   1886         \"\"\"\n-> 1887         self.convert_pixel_data()\n   1888         return cast(\"numpy.ndarray\", self._pixel_array)\n   1889 \n\n/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in convert_pixel_data(self, handler_name)\n   1442             self._convert_pixel_data_using_handler(handler_name)\n   1443         else:\n-> 1444             self._convert_pixel_data_without_handler()\n   1445 \n   1446     def _convert_pixel_data_using_handler(self, name: str) -> None:\n\n/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in _convert_pixel_data_without_handler(self)\n   1529                 )\n   1530 \n-> 1531             raise RuntimeError(msg + ', '.join(pkg_msg))\n   1532 \n   1533         last_exception = None\n\nRuntimeError: The following handlers are available to decode the pixel data however they are missing required dependencies: GDCM (req. ), pylibjpeg (req. )"
        },
        {
          "id": 1915694,
          "postDate": "2022-08-27T07:56:07.520Z",
          "content": "<p>That's very strange. Try:</p>\n<blockquote>\n  <p>from pydicom.pixel_data_handlers.util import apply_voi_lut<br>\n  dataset = pydicom.dcmread(infile)<br>\n  new_image =apply_voi_lut(dataset.pixel_array, dataset)</p>\n</blockquote>",
          "rawMarkdown": "That's very strange. Try:\n\n> from pydicom.pixel_data_handlers.util import apply_voi_lut\n> dataset = pydicom.dcmread(infile)\n> new_image =apply_voi_lut(dataset.pixel_array, dataset)"
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 1913274,
      "author_name": "Samuel Cortinhas",
      "author_url": "",
      "post_date": "2022-08-25T09:07:27.840000",
      "content": "<blockquote>\n  <h1>To read compressed dicom files:</h1>\n  <p>'''Online'''</p>\n  <h1>! pip install python-gdcm</h1>\n  <h1>! pip install pylibjpeg pylibjpeg-libjpeg pydicom</h1>\n  <p>'''Offline (need to add dataset --&gt; for-pydicom)'''<br>\n  !pip install -qU ../input/for-pydicom/python_gdcm-3.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl ../input/for-pydicom/pylibjpeg-1.4.0-py3-none-any.whl --find-links frozen_packages --no-index</p>\n</blockquote>\n<p>You can find this in my EDA notebook. <a href=\"https://www.kaggle.com/code/samuelcortinhas/rsna-fracture-detection-in-depth-eda\" target=\"_blank\">https://www.kaggle.com/code/samuelcortinhas/rsna-fracture-detection-in-depth-eda</a></p>",
      "votes": 0,
      "replies": [
        {
          "id": 1914026,
          "author_name": "cbarb15",
          "author_url": "",
          "post_date": "2022-08-25T16:59:31.173000",
          "content": "<p>Thanks you Samuel! I will try it tonight.   </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1914315,
          "author_name": "",
          "author_url": "",
          "post_date": "2022-08-26T01:58:07.023000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1915406,
          "author_name": "cbarb15",
          "author_url": "",
          "post_date": "2022-08-27T00:26:18.637000",
          "content": "<p>I have tried both online and offline and both say that the requirements are already satisfied in the site-packages and I'm still getting the error.  Here is my code and the logs</p>\n<pre><code>`# 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\n\n# !pip install -qU ../input/for-pydicom/python_gdcm-3.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl \n# !pip install ../input/pylibjpeg-whl/pylibjpeg-1.4.0-py3-none-any.whl --find-links frozen_packages --no-index\n\n! pip install python-gdcm\n! pip install pylibjpeg pylibjpeg-libjpeg pydicom\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom pydicom import dcmread\nimport os, shutil\nfrom PIL import Image\n\nCURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_TRAIN_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))\n</code></pre>\n<p>Requirement already satisfied: python-gdcm in /opt/conda/lib/python3.7/site-packages (3.0.14)<br>\nWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <a href=\"https://pip.pypa.io/warnings/venv\" target=\"_blank\">https://pip.pypa.io/warnings/venv</a> class=\"ansi-yellow-fg\"&gt;<br>\nRequirement already satisfied: pylibjpeg in /opt/conda/lib/python3.7/site-packages (1.4.0)<br>\nCollecting pylibjpeg-libjpeg<br>\n  Downloading pylibjpeg_libjpeg-1.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB)<br>\n     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 MB 6.9 MB/s eta 0:00:0000:0100:010m<br>\nRequirement already satisfied: pydicom in /opt/conda/lib/python3.7/site-packages (2.3.0)<br>\nRequirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from pylibjpeg) (1.21.6)<br>\nInstalling collected packages: pylibjpeg-libjpeg<br>\nSuccessfully installed pylibjpeg-libjpeg-1.3.1<br>\nWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: <a href=\"https://pip.pypa.io/warnings/venv\" target=\"_blank\">https://pip.pypa.io/warnings/venv</a> class=\"ansi-yellow-fg\"&gt;<br>\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.17625<br>\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.3850<br>\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.2286<br>\nnew directory ./jpeg_train_images/1.2.826.0.1.3680043.14435</p>\n<hr>\n<p>RuntimeError                              Traceback (most recent call last)<br>\n/tmp/ipykernel_17/931439731.py in <br>\n     32         with open(IMAGE_PATH, 'rb') as infile:<br>\n     33             dataset = dcmread(infile)<br>\n---&gt; 34             new_image = dataset.pixel_array.astype(float)<br>\n     35             scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0<br>\n     36             scaled_image = np.uint8(scaled_image)</p>\n<p>/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in pixel_array(self)<br>\n   1885             :class:<code>numpy.ndarray</code>.<br>\n   1886         \"\"\"<br>\n-&gt; 1887         self.convert_pixel_data()<br>\n   1888         return cast(\"numpy.ndarray\", self._pixel_array)<br>\n   1889 </p>\n<p>/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in convert_pixel_data(self, handler_name)<br>\n   1442             self._convert_pixel_data_using_handler(handler_name)<br>\n   1443         else:<br>\n-&gt; 1444             self._convert_pixel_data_without_handler()<br>\n   1445 <br>\n   1446     def _convert_pixel_data_using_handler(self, name: str) -&gt; None:</p>\n<p>/opt/conda/lib/python3.7/site-packages/pydicom/dataset.py in _convert_pixel_data_without_handler(self)<br>\n   1529                 )<br>\n   1530 <br>\n-&gt; 1531             raise RuntimeError(msg + ', '.join(pkg_msg))<br>\n   1532 <br>\n   1533         last_exception = None</p>\n<p>RuntimeError: The following handlers are available to decode the pixel data however they are missing required dependencies: GDCM (req. ), pylibjpeg (req. )</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1915694,
          "author_name": "Samuel Cortinhas",
          "author_url": "",
          "post_date": "2022-08-27T07:56:07.520000",
          "content": "<p>That's very strange. Try:</p>\n<blockquote>\n  <p>from pydicom.pixel_data_handlers.util import apply_voi_lut<br>\n  dataset = pydicom.dcmread(infile)<br>\n  new_image =apply_voi_lut(dataset.pixel_array, dataset)</p>\n</blockquote>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1912853": "I am extracting the images from the dicom files and saving them in their own directories in the /kaggle/working/ directory.   When I run this code in pycharm on my machine, it works just fine and saves the images to the directories.  \n```\n`CURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))`\n```\n\nWhen running this code in my notebook, I get this error:\nThe following handlers are available to decode the pixel data however they are missing required dependcies: GDCM (req. GDCM), pylibjpeg (req.)\n\nThis is my first time working with the pydicom library, so I am not quite sure why it is doing this in the kernal, but working fine on my machine. \n\n\nI saw this comment on another thread with some conda helpers and I added them, but now get \n```\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/libjpeg-turbo-2.1.0-h7f98852_0.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/libgcc-ng-9.3.0-h2828fa1_19.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/gdcm-2.8.9-py37h500ead1_1.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/conda-4.10.1-py37h89c1867_0.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/certifi-2020.12.5-py37h89c1867_1.tar.bz2\n\n\nDownloading and Extracting Packages\n                                                                         |   0% \n\nPathNotFoundError: /kaggle/working/openssl-1.1.1k-h7f98852_0.tar.bz2\n```\n\nHere is my code now:\n\n```\n!conda install 'libjpeg-turbo-2.1.0-h7f98852_0.tar.bz2' -c conda-forge -y\n!conda install 'libgcc-ng-9.3.0-h2828fa1_19.tar.bz2' -c conda-forge -y\n!conda install 'gdcm-2.8.9-py37h500ead1_1.tar.bz2' -c conda-forge -y\n!conda install 'conda-4.10.1-py37h89c1867_0.tar.bz2' -c conda-forge -y\n!conda install 'certifi-2020.12.5-py37h89c1867_1.tar.bz2' -c conda-forge -y\n!conda install 'openssl-1.1.1k-h7f98852_0.tar.bz2' -c conda-forge -y\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom pydicom import dcmread\nimport os, shutil\nfrom PIL import Image\n\nCURRENT_DIR_PATH = \"./\"\nTRAINING_IMAGES_PATH = \"../input/rsna-2022-cervical-spine-fracture-detection/train_images\"\nimage_directories = os.listdir(TRAINING_IMAGES_PATH)\nJPEG_TRAIN_IMAGES_PATH = os.path.join(CURRENT_DIR_PATH, 'jpeg_train_images')\nos.mkdir(JPEG_TRAIN_IMAGES_PATH)\n# shutil.rmtree(JPEG_TRAIN_IMAGES_PATH)\n\nfor image_set_directory in image_directories:\n    IMAGES_DIR_PATH = os.path.join(TRAINING_IMAGES_PATH, image_set_directory)\n    files = os.listdir(IMAGES_DIR_PATH)\n    JPEG_TRAIN_IMAGES_SET_PATH = os.path.join(JPEG_TRAIN_IMAGES_PATH, image_set_directory)\n    print(f'new directory {JPEG_TRAIN_IMAGES_SET_PATH}')\n    os.mkdir(JPEG_TRAIN_IMAGES_SET_PATH)\n    for file in files:\n        IMAGE_PATH = os.path.join(IMAGES_DIR_PATH, file)\n        with open(IMAGE_PATH, 'rb') as infile:\n            dataset = dcmread(infile)\n            new_image = dataset.pixel_array.astype(float)\n            scaled_image = (np.maximum(new_image, 0) / new_image.max()) * 255.0\n            scaled_image = np.uint8(scaled_image)\n            final_image = Image.fromarray(scaled_image)\n            # final_image.show()\n            file_name, _ = os.path.splitext(file)\n            final_image.save(os.path.join(JPEG_TRAIN_IMAGES_SET_PATH, file_name + '.png'))\n\n```",
    "1913274": "> # To read compressed dicom files:\n\n> '''Online'''\n> #! pip install python-gdcm\n> #! pip install pylibjpeg pylibjpeg-libjpeg pydicom\n\n> '''Offline (need to add dataset --> for-pydicom)'''\n> !pip install -qU ../input/for-pydicom/python_gdcm-3.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl ../input/for-pydicom/pylibjpeg-1.4.0-py3-none-any.whl --find-links frozen_packages --no-index\n\nYou can find this in my EDA notebook. https://www.kaggle.com/code/samuelcortinhas/rsna-fracture-detection-in-depth-eda"
  }
}