1

I'm currently working on a deep learning project involving DICOM images. Long story short, in this project I have X-ray images of human pelvises and I'm trying to predict if there are some pathological changes on the hip joint (for example: cysts, osteophytes, sclerotisation, ...).

One of my problems is that the data was gathered from different hospitals and it has different properties (distributions). My focus was mostly on:

  • Modality - I have Computed Radiography (CR) and Digital Radiography (DX) X-rays
  • Photometric Interpretation - I have X-rays saved in RGB, MONOCHROME1 and MONOCHROME2

I have 3 main groups of images:

Images types

If I understand correctly I can't really do anything with Modality but in case of Photomertic Interpretation I've changed RGB X-rays to grayscale, unitarized all of them, and inverse MONOCHRMOE1 pixel values:

pixel_data = dicom.pixel_array
pi = dicom['PhotometricInterpretation'].value
if pi == 'RGB':
    pixel_data = rgb2gray(pixel_data)
pixel_data = (pixel_data - pixel_data.min()) / (pixel_data.max() - pixel_data.min())
if pi == 'MONOCHROME1':
    pixel_data = np.abs(1 - pixel_data)

After that I've applied CLAHE algorithm to each of them. 3 sample images (CR-RGB, DX-MONO2, CX-MONO1) before and after preprocessing looks like that:

Before and after preprocessing

Last step before modeling is to cut hip joints from the X-rays, becouse all the changes that I'm trying to predict are located in small region, so that I don't need whole X-ray (I'm planning to build localization model for finding bounding boxes of the hip joint and classification models for the changes on top of that). 3 sample hip joints (CR-RGB, DX-MONO2, CX-MONO1) after cutting looks like:

Hip joint cuts

My questions are:

  1. Is there anything wrong with my preprocessing steps ?
  2. Should I maybe add something to preprocessing ?

It's my first time working with DICOMs and any help would be appreciated.

Amit Joshi
  • 15,448
  • 21
  • 77
  • 141
Maju116
  • 1,607
  • 1
  • 15
  • 30
  • Since you don't wanna process the whole image in details, don't use clahe, the adjustment that you did (with min and max) is enough. Then if you have lots of images, work with deep learning, if you don't, free form registration is the best method to compare the abnormalities with a ground truth. – MeiH Jan 07 '20 at 10:10

1 Answers1

0

I think you should use one of the threshold techniques, I suggest to try "Otsu", then to detect the edges you need to try "canny". you can also use connected component labeling to find the area of interest where you want to check cysts, osteophytes.

  • Unless the OP knows the meaning of terms such as "otsu" and "canny", the answer will be unhelpful. So, to make the answer helpful, provide more details about the terms and how they link to the terms/code/topic mentioned by the OP. Providing references to the terms that you use is also helpful. – Venkatesh-Prasad Ranganath Jan 07 '20 at 00:52