Scale scaling and intercept scaling

I have several questions about zooming and recalculating zooming in CT DICOM :

  1. Are they used to transfer the source data from the scanner to the Hounsfield dataset, in which water is 0 and air is -1000?
  2. I am in the image display group. How to find out the slope of the change of scale and the value of the interception of the conversion
  3. What is the exact value of the slope of the zoom and the intersection of the zoom? How are they determined?
+11
source share
2 answers

Resetting scaling and crosstalk allow you to convert pixel values ​​to HU or other units, as indicated in the 0028.1054 tag.

For CT images, the block must be HU (Hounsfield), and the default value is really HU when the tag 0028,1054 is missing. However, the tag may be present and may indicate another unit (OD = optical density, US = unspecified).

Zoom tilt and intercept are determined by the hardware manufacturer.

If the conversion from the original pixel values ​​to Hounsfield or the optical density is not linear, then LUT is applied.

See Part 3 of C.11 for more details, as well as this answer. Window width and centralized DICOM image calculation

+14
source

This is my implementation:

def window_ct(dcm, w, c, ymin, ymax): """Windows a CT slice. http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.11.2.html Args: dcm (pydicom.dataset.FileDataset): w: Window Width parameter. c: Window Center parameter. ymin: Minimum output value. ymax: Maximum output value. Returns: Windowed slice. """ # convert to HU b = dcm.RescaleIntercept m = dcm.RescaleSlope x = m * dcm.pixel_array + b # windowing C.11.2.1.2.1 Default LINEAR Function # y = np.zeros_like(x) y[x <= (c - 0.5 - (w - 1) / 2)] = ymin y[x > (c - 0.5 + (w - 1) / 2)] = ymax y[(x > (c - 0.5 - (w - 1) / 2)) & (x <= (c - 0.5 + (w - 1) / 2))] = \ ((x[(x > (c - 0.5 - (w - 1) / 2)) & (x <= (c - 0.5 + (w - 1) / 2))] - (c - 0.5)) / (w - 1) + 0.5) * ( ymax - ymin) + ymin return y 
0
source

All Articles