[vtkusers] (dcmtk -> vtkImageData) for Volume rendering
Mallikarjun K
mallikarjun49 at gmail.com
Wed Feb 10 12:17:20 EST 2016
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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160210/0e4f4559/attachment-0001.html>
-------------- 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/0e4f4559/attachment-0002.png>
-------------- 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/0e4f4559/attachment-0003.png>
More information about the vtkusers
mailing list