Re: CT number calculation in IDL [message #46618] |
Thu, 01 December 2005 17:45 |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
Nikki Bloms writes:
> This might be a remedial question, but I have tried to search for
> something related with no luck.
>
> A little background, I'm mainly using IDL for medical imaging, quality
> assurance of MRI/CT/etc images. My current project is to develop a
> program to automate measurements of ROI's on a water phantom imaged in
> CT. The resulting data needs to be expressed in CT numbers.
>
> My question: Is there a conversion or an easy way to convert between
> pixel value and CT number? Or, are the numbers the same?
>
> Any input is appreciated, Thank you in advance,
From Wikipedia:
Pixels in an image obtained by CT scanning are displayed in terms of
relative radiodensity. The pixel itself is displayed according to the
mean attenuation of the tissue that it corresponds to on a scale from
-1024 to +3071 on the Hounsfield scale. Water has an attenuation of 0
Hounsfield units (HU) while air is -1000 HU, bone is typically +400 HU
or greater and metallic implants are usually +1000 HU.
Most CT data has pixel values in the 0 to 3000 range. Usually,
you can find a Rescale Slope (usually 1) and a Rescale Intercept
(usually -1024) in the Dicom header. These are used to convert
the image pixel value to Hounsfield units:
image_hu = (pixel_value) * slope + intercept
Once in these units, you typically window/level to see the
features of interest (see my WINDOWIMAGE program, for example).
To see bone, for example:
TV, Bytscl(image_hu, Min=300, Max=500)
To see fat (-100 to 200):
TV, BytScl(image_hu, Min-100, Max=200)
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
|
|
|