How to apply Modality and VOI LUTs in DICOM - DICOM

This is a discussion on How to apply Modality and VOI LUTs in DICOM - DICOM ; Hi All, I need to develop an application which should extract the image data from DICOM files and convert it to JPEG format. I have so far been able to extract the stored pixel data, apply Rescale intercept/Slope and Window ...

+ Reply to Thread
Results 1 to 4 of 4

Thread: How to apply Modality and VOI LUTs in DICOM

  1. How to apply Modality and VOI LUTs in DICOM

    Hi All,
    I need to develop an application which should extract the image data
    from DICOM files and convert it to JPEG format.
    I have so far been able to extract the stored pixel data, apply
    Rescale intercept/Slope and Window Width/Center values. Now, I need to
    consider the cases where there might be present, the Modality and VOI
    LUTs.

    Could anybody tell me the method to apply these table values to the
    pixel data?

    Is it like taking the first value from the LUT and applying that to
    the first pixel value?

    What are the formulae for transformation?

    Thanks in advance,
    Shaji.

  2. Re: How to apply Modality and VOI LUTs in DICOM

    Hi Shaji

    The LUT Descriptor specifies various offsets and lengths required
    to use the value from the previous step in the pipeline (e.g.,
    the stored pixel values (values in (7FE0,0010)) in the case of
    the Modality LUT) to index the LUT Data to obtain the binary value
    to use for the next step in the pipeline.

    See PS 3.3 C.11.1.1.1 [Modality] "LUT descriptor" and PS 3.3
    C.11.2.1.1 [VOI] "LUT Descriptor".

    For an example, see from my PixelMed Java toolkit the method
    com.pixelmed.display.applyVOILUT() and also the class
    com.pixelmed.dicom.VOITransform.

    Note that since at least one vendor (Agfa) consistently refuses to
    encode its VOI LUTs properly, sending only 12 bits when they claim to
    be 16 bit deep, you may need to do a "search for the highest
    value and find the next power of 2 minus 1" to get a useable
    output range. See com.pixelmed.dicom.VOITransform.getTopOfEntryRange ().

    David

    shaji wrote:
    > Hi All,
    > I need to develop an application which should extract the image data
    > from DICOM files and convert it to JPEG format.
    > I have so far been able to extract the stored pixel data, apply
    > Rescale intercept/Slope and Window Width/Center values. Now, I need to
    > consider the cases where there might be present, the Modality and VOI
    > LUTs.
    >
    > Could anybody tell me the method to apply these table values to the
    > pixel data?
    >
    > Is it like taking the first value from the LUT and applying that to
    > the first pixel value?
    >
    > What are the formulae for transformation?
    >
    > Thanks in advance,
    > Shaji.


  3. Re: How to apply Modality and VOI LUTs in DICOM

    Hi David,
    Thanks a lot for this reply.
    It seems I'm still a bit confused about this as I'm a novice to DICOM.

    After taking the Modality LUT sequence data, how should I apply that
    to the stored pixel values?
    What is meant by " to index the LUT Data to obtain the binary value"?
    Does the LUT sequence represent some kind of index. The explanation in
    PS 3.3 is more than enough to confuse any new comer

    So could you please help me with an explanation in a simpler terms?

    Thanks,
    Shaji.

  4. Re: How to apply Modality and VOI LUTs in DICOM

    General discussion of what a "lookup table" is can be found at:

    http://en.wikipedia.org/wiki/Lookup_table

    The following presentation might help:

    ftp://medical.nema.org/MEDICAL/Dicom.../LUTenciss.ppt

    David

    shaji wrote:
    > Hi David,
    > Thanks a lot for this reply.
    > It seems I'm still a bit confused about this as I'm a novice to DICOM.
    >
    > After taking the Modality LUT sequence data, how should I apply that
    > to the stored pixel values?
    > What is meant by " to index the LUT Data to obtain the binary value"?
    > Does the LUT sequence represent some kind of index. The explanation in
    > PS 3.3 is more than enough to confuse any new comer
    >
    > So could you please help me with an explanation in a simpler terms?
    >
    > Thanks,
    > Shaji.



+ Reply to Thread