[vtkusers] (dcmtk -> vtkImageData) for Volume rendering

Bill Lorensen bill.lorensen at gmail.com
Wed Feb 10 12:28:34 EST 2016


If you apply the rescale slope and intercept, you must use use short.
Otherwise you are overflowing the unsigned short.


On Wed, Feb 10, 2016 at 12:17 PM, Mallikarjun K <mallikarjun49 at gmail.com>
wrote:

> Thanks Bill.
> Can I use vtkShiftscale filter on this unsigned short data to convert to
> short?Because I want to keep original data type as it is, as it is being
> used by the another process in the pipeline.
> If yes,what should be the shift and scale I have to supply to shiftscale
> filter.
>
> With Kind Regards,
> Mallikarjun
> On Feb 10, 2016 10:28 PM, "Bill Lorensen" <bill.lorensen at gmail.com> wrote:
>
>> Your data should also be short. Once you apply the slope and intercept.
>> Do not use unsigned short for CT data.
>>
>> On Wed, Feb 10, 2016 at 11:56 AM, Mallikarjun K <mallikarjun49 at gmail.com>
>> wrote:
>>
>>> Hello Simon and Cory,
>>> As I said in my first post,I applied ModalityLUT(which is nothing but
>>> applying rescale slope and rescale intercept ) on dicom raw data of
>>> unsigned short data type.That is why raw data range(0-4095) is shifted to
>>> unsigned short range (0-65536) what I guess.
>>> When I checked data range when read by vtkdicomimagereader,it is short
>>> data type and range is from -32768 to +32767.
>>>
>>> With Kind Regards,
>>> Mallikarjun
>>> On Feb 10, 2016 9:08 PM, "Cory Quammen" <cory.quammen at kitware.com>
>>> wrote:
>>>
>>>> Yep, what Simon said.
>>>>
>>>> Cory
>>>>
>>>> On Wed, Feb 10, 2016 at 9:34 AM, Simon ESNEAULT <
>>>> simon.esneault at gmail.com> wrote:
>>>>
>>>>> Hello Mallikarjun,
>>>>>
>>>>> If it is a CT scan, maybe you're missing the Rescale Intercept Slope
>>>>> parameters to get the same results as the vtkDicomImageReader ?
>>>>> https://blog.kitware.com/dicom-rescale-intercept-rescale-slope-and-itk/
>>>>>
>>>>> Simon
>>>>>
>>>>>
>>>>> 2016-02-10 15:12 GMT+01:00 Mallikarjun K <mallikarjun49 at gmail.com>:
>>>>>
>>>>>> Hello Cory,
>>>>>>
>>>>>> Yes,the first image looks like a human head but it is surrounded by
>>>>>> some other gray/balck colored stuff.I think you are right,it is the issue
>>>>>> with color/opacity maps.The data is in the range of 0-65536(unsigned
>>>>>> short). Below are the color and opacity maps I applied.
>>>>>>
>>>>>>                 //setup opacity
>>>>>> d->m_opacityTransferFunction->AddPoint(132.108911, 0.000000);
>>>>>> d->m_opacityTransferFunction->AddPoint(197.063492, 0.041333);
>>>>>> d->m_opacityTransferFunction->AddPoint(1087.917989, 0.700000);
>>>>>> //setup gradient opacity
>>>>>> d->m_gradientTransferFunction->AddPoint(560.695000, 1.000000);
>>>>>>
>>>>>> // Setup color
>>>>>> d->m_colorTransferFunction->AddRGBPoint(176.881890, 0.650980,
>>>>>> 0.000000, 0.000000);
>>>>>> d->m_colorTransferFunction->AddRGBPoint(239.427822, 0.933333,
>>>>>> 0.000000, 0.000000);
>>>>>> d->m_colorTransferFunction->AddRGBPoint(301.973753, 1.000000,
>>>>>> 0.800000, 0.062745);
>>>>>> d->m_colorTransferFunction->AddRGBPoint(495.866142, 1.000000,
>>>>>> 0.905882, 0.666667);
>>>>>> d->m_colorTransferFunction->AddRGBPoint(677.249344, 1.000000,
>>>>>> 0.882353, 0.215686);
>>>>>> d->m_colorTransferFunction->AddRGBPoint(808.595801, 1.000000,
>>>>>> 1.000000, 1.000000);
>>>>>>
>>>>>> What should I do to eliminate gray/balck colored stuff ? please guide
>>>>>> me.
>>>>>>
>>>>>> Thank you.
>>>>>> Regards,
>>>>>> Mallikarjun
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Feb 10, 2016 at 7:18 PM, Cory Quammen <
>>>>>> cory.quammen at kitware.com> wrote:
>>>>>>
>>>>>>> Mallikarjun,
>>>>>>>
>>>>>>> Could you clarify for me whether the first image at all looks like a
>>>>>>> human head? Is the issue that the color/opacity maps do not appear to be
>>>>>>> applied correctly, or that the data is just completely strange when reading
>>>>>>> from dcmtk?
>>>>>>>
>>>>>>> If it is the latter, I have a couple guesses:
>>>>>>>
>>>>>>> - maybe your dimensions are off from what dcmtk tells you
>>>>>>> - maybe dcmtk's conventions for voxel order are different from VTK
>>>>>>>
>>>>>>> Cory
>>>>>>>
>>>>>>> On Wed, Feb 10, 2016 at 2:40 AM, Mallikarjun K <
>>>>>>> mallikarjun49 at gmail.com> wrote:
>>>>>>>
>>>>>>>> Hello Cory Quammen,
>>>>>>>>
>>>>>>>> Thanks for the response and suggestions.We are kind of established
>>>>>>>> in using dcmtk in our project,So couldn't use vtk-dicom for time being.
>>>>>>>>
>>>>>>>> Below is the code snippet which I used to get dcmtk data to vtk:
>>>>>>>>
>>>>>>>>
>>>>>>>> vtkDataArray* scalars = 0;
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> switch (dicomDataType)
>>>>>>>> {
>>>>>>>> case TYPE_U32Data:
>>>>>>>> scalars = vtkUnsignedIntArray::New();
>>>>>>>> ((vtkUnsignedIntArray*)(scalars))->SetArray((unsigned
>>>>>>>> int*)dicomData, dicomDataSize, 1);//dicomData is the data from dcmtk
>>>>>>>> break;
>>>>>>>> case TYPE_U8Data:
>>>>>>>> scalars = vtkUnsignedCharArray::New();
>>>>>>>> ((vtkUnsignedCharArray*)(scalars))->SetArray((unsigned
>>>>>>>> char*)dicomData, dicomDataSize, 1);
>>>>>>>> break;
>>>>>>>> case TYPE_U16Data:
>>>>>>>> scalars = vtkUnsignedShortArray::New();
>>>>>>>> ((vtkUnsignedShortArray*)(scalars))->SetArray((unsigned
>>>>>>>> short*)dicomData, dicomDataSize, 1);
>>>>>>>> break;
>>>>>>>> case TYPE_S16Data:
>>>>>>>> scalars = vtkShortArray::New();
>>>>>>>> ((vtkShortArray*)(scalars))->SetArray((short*)dicomData,
>>>>>>>> dicomDataSize, 1);
>>>>>>>> break;
>>>>>>>> }
>>>>>>>> scalars->SetNumberOfComponents(1);
>>>>>>>> double range[2];
>>>>>>>> scalars->GetRange(range);
>>>>>>>> m_imageData = vtkImageData::New();
>>>>>>>> m_imageData->SetDimensions(dimensions);
>>>>>>>> m_imageData->SetSpacing(spacing);
>>>>>>>> m_imageData->GetPointData()->SetScalars(scalars);
>>>>>>>> scalars->Delete();
>>>>>>>> m_imageData->GetPointData()->GetScalars()->SetName("VR Cuboid");
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks&Regards,
>>>>>>>> Mallikarjun
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Feb 9, 2016 at 8:47 PM, Cory Quammen <
>>>>>>>> cory.quammen at kitware.com> wrote:
>>>>>>>>
>>>>>>>>> How are you getting the data from dcmtk to VTK? Code would be
>>>>>>>>> helpful.
>>>>>>>>>
>>>>>>>>> As an aside, you may be interested in David Gobbi's excellent
>>>>>>>>> DICOM reader for VTK.
>>>>>>>>>
>>>>>>>>> https://github.com/dgobbi/vtk-dicom
>>>>>>>>>
>>>>>>>>> I believe you can build this within VTK by enabling the
>>>>>>>>> Module_vtkDICOM option.
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>> Cory
>>>>>>>>>
>>>>>>>>> On Tue, Feb 9, 2016 at 8:25 AM, Mallikarjun K <
>>>>>>>>> mallikarjun49 at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hello All,
>>>>>>>>>> I used dcmtk to read dicom raw data and applied Modality LUT and
>>>>>>>>>> created a vtkImageData. When I used this data for Volume
>>>>>>>>>> Rendering(vtkGPUVolumeRayCastMapper), I am getting the following output.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> [image: Inline image 2]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> When I used vtkDicomImageReader's output for Volume rendering ,I
>>>>>>>>>> am getting the following output.
>>>>>>>>>>
>>>>>>>>>> [image: Inline image 1]
>>>>>>>>>>
>>>>>>>>>> Can anyone give some pointers why this is happening?
>>>>>>>>>>
>>>>>>>>>> Thanks in advance..
>>>>>>>>>> --
>>>>>>>>>> *With Kind Regards:*
>>>>>>>>>> Mallikarjun
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Powered by www.kitware.com
>>>>>>>>>>
>>>>>>>>>> Visit other Kitware open-source projects at
>>>>>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>>>>>>
>>>>>>>>>> Please keep messages on-topic and check the VTK FAQ at:
>>>>>>>>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>>>>>>>>
>>>>>>>>>> Search the list archives at:
>>>>>>>>>> http://markmail.org/search/?q=vtkusers
>>>>>>>>>>
>>>>>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>>>>>> http://public.kitware.com/mailman/listinfo/vtkusers
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Cory Quammen
>>>>>>>>> R&D Engineer
>>>>>>>>> Kitware, Inc.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *With Kind Regards:*
>>>>>>>> Mallikarjuna K,
>>>>>>>> 07795531103/09908238861.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Cory Quammen
>>>>>>> R&D Engineer
>>>>>>> Kitware, Inc.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *With Kind Regards:*
>>>>>> Mallikarjuna K,
>>>>>> 07795531103/09908238861.
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Powered by www.kitware.com
>>>>>>
>>>>>> Visit other Kitware open-source projects at
>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>>
>>>>>> Please keep messages on-topic and check the VTK FAQ at:
>>>>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>>>>
>>>>>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://public.kitware.com/mailman/listinfo/vtkusers
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> ------------------------------------------------------------------
>>>>> Simon Esneault
>>>>> Rennes, France
>>>>> ------------------------------------------------------------------
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Cory Quammen
>>>> R&D Engineer
>>>> Kitware, Inc.
>>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the VTK FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://public.kitware.com/mailman/listinfo/vtkusers
>>>
>>>
>>
>>
>> --
>> Unpaid intern in BillsBasement at noware dot com
>>
>


-- 
Unpaid intern in BillsBasement at noware dot com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160210/fd6be9d4/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 111519 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160210/fd6be9d4/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 35053 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160210/fd6be9d4/attachment-0003.png>


More information about the vtkusers mailing list