[vtkusers] DCMTK and VTK - corrected

Luca Pamparana luca.pamparana at gmail.com
Tue May 15 11:21:50 EDT 2007


Great! Thanks!

I had got it to read but was not sure how to get the scalar type!

Many thanks!

Luca

On 5/15/07, Beau Sapach <beau.sapach at ualberta.ca> wrote:
>
>  Woops, my original reply had Uint8 everywhere which would mean Char or
> Unsigned Char scalar type…. Here's the corrected code, Uint16 instead.
>
>
>
>             //retrieve image dimensions (dimx,dimy,dimz)
>
>             //retrieve pixel spacing (spx,spy,spz)
>
>             //get pixel depth (depth) (DCM_BitsAllocated)
>
>
>
>             //depth is originally a count of bits, convert to bytes
>
>             depth = depth/8;
>
>
>
>             //calculate the full size of the scalars
>
> int ByteCount = depth * dimx * dimy;
>
>
>
>             //make an imagedata object
>
>             vtkImageData * image = vtkImageData::New();
>
>             image->SetOrigin(0,0,0);
>
>             image->SetSpacing(spx,spy,spz);
>
>             image->SetDimensions(dimx,dimy,dimz);
>
>             image->SetScalarTypeToShort();
>
>             image->AllocateScalars();
>
>
>
>             //get the pointer to the allocated scalar memory from the
> image
>
>             char * scalar_buf = (char*)image->GetScalarPointer();
>
>
>
>             //buffer to read scalars into from dicom
>
>             Uint16 * pUint16 = NULL;
>
>
>
>             //read in the scalars
>
>             dicom->findAndGetUint16Array(DCM_PixelData,pUint16);
>
>
>
>             //since the Uint16 data gets deleted when the DcmDataset
> object is destroyed
>
>             //we have to copy the data into the buffer already allocated
> by vtkImageData
>
>             memcpy(scalar_buf,pUint16,ByteCount);
>
>
>
> ________________________________________
>
> From: vtkusers-bounces+beau.sapach=ualberta.ca at vtk.org [mailto:
> vtkusers-bounces+beau.sapach=ualberta.ca at vtk.org] On Behalf Of Luca
> Pamparana
>
> Sent: Tuesday, May 15, 2007 8:20 AM
>
> To: vtkusers
>
> Subject: [vtkusers] DCMTK and VTK
>
>
>
> Hi everyone,
>
>
>
> Does anyone has any examples of reading in a DICOM volume into VTK using
> DCMTK?
>
>
>
> So, I have a list of DICOM files that comprises a volume and I want to
> create a vtkImageData out of it. Does anyone know what is the best way to
> achieve that? A C++ code snippet would be really nice!
>
>
>
> Thanks,
>
> Luca
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20070515/a60c4c98/attachment.htm>


More information about the vtkusers mailing list