Hi OFFIS team,
I am not sure if the DCMTK reads the Modality LUT or the VOI LUT data in the tags of DICOM data.
We have the DICOM data including Modality LUT and another one including VOI LUT. We investigated the both data using "dataset->findAndGetElement()" as follows;
dataset->findAndGetElement(DCM_ModalityLUTSequence, element, OFFalse);
dataset->findAndGetElement(DCM_VOILUTSequence, element, OFFalse);
dataset->findAndGetElement(DCM_LUTDescriptor, element, OFFalse);
dataset->findAndGetElement(DCM_LUTData, element, OFFalse);
The results are that in the DICOM data including Modality LUT the only "element" of DCM_ModalityLUTSequence has meaningful contents but other "element" has no meaningful contents, in the DICOM data including VOI LUT the only "element" of DCM_VOILUTSequence has meaningful contents but other "element" has no meaningful contents. So far, I have to conclude that DCMTK doesn't read the Modality LUT or the VOI LUT data in the DICOM data.
Is it right?
If so, in order to read and use the Modality LUT or the VOI LUT data, please tell me how should I do?
In addition, is it the same about Presentation LUT?
Thank's for your help,
Best Regards,
Masabumi Ishihara
LUT table in DCMTK
Moderator: Moderator Team
-
- OFFIS DICOM Team
- Posts: 1512
- Joined: Tue, 2004-11-02, 17:22
- Location: Oldenburg, Germany
- Contact:
The Modality LUT Sequence and VOI LUT Sequence are not contained in all DICOM images. When they are present, of course the DCMTK parser reads them and provides access, as to all other elements of the dataset.
Note that both Modality LUT Sequence and VOI LUT Sequence are Sequenceelements, i.e. instances of DcmSequenceOfItems. You will not find a LUT Descriptor or LUT Data in the main dataset, but in the first item of the sequence. See the API documentation for Sequences (class DcmSequenceOfItems and class DcmItem) to see how you navigate through hierarchical data structures.
That said, if you are trying to read the content of the Modality LUT and VOI LUT then you are probably trying to re-implement a functionality that is already present in class DicomImage (module dcmimgle+dcmimage), and highly optimized as well. If you want to display a DICOM image, don't try to re-invent the wheel.
Note that both Modality LUT Sequence and VOI LUT Sequence are Sequenceelements, i.e. instances of DcmSequenceOfItems. You will not find a LUT Descriptor or LUT Data in the main dataset, but in the first item of the sequence. See the API documentation for Sequences (class DcmSequenceOfItems and class DcmItem) to see how you navigate through hierarchical data structures.
That said, if you are trying to read the content of the Modality LUT and VOI LUT then you are probably trying to re-implement a functionality that is already present in class DicomImage (module dcmimgle+dcmimage), and highly optimized as well. If you want to display a DICOM image, don't try to re-invent the wheel.
-
- Posts: 40
- Joined: Thu, 2008-09-18, 09:20
- Location: Japan
Thanks!
Dear, Marco
Thank you for your reply.
Your explanation and advice are very helpful for me to implement the further function of our Viewer.
Yours truely,
Thank you for your reply.
Your explanation and advice are very helpful for me to implement the further function of our Viewer.
Yours truely,
Maty
Who is online
Users browsing this forum: Ahrefs [Bot], Bing [Bot] and 1 guest