Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to calculate Hounsfield Unit in dicom

1,670 views
Skip to first unread message

Ananthakumar Alwarsamy

unread,
May 16, 2012, 3:02:32 AM5/16/12
to
Hi ,


I am newbie to the dicom development . Since one month i am developing a dicom viewer . Now i am struggling with the Hounsfield Value . I googled many times and found the formulae to calculate the hounsfield as

HU = PixelValue * Slope + Intercept .

I realized what is the slope and intercept values are and also if it is Non-Linear have to go for Modality LUT . Now i need to know what is exactly is PixelValue . When i'm calculating Bitmap pixelvalue based on mouseover event , i got ARGB values .

Can i convert this ARGB to grayscale and then use it
If not then how can i identify or calculate the PixelValue .

Anyone put me on right path .

Thankyou

Jörg Riesmeier

unread,
May 16, 2012, 4:49:36 AM5/16/12
to
> I am newbie to the dicom development . Since one month i am developing a
> dicom viewer . Now i am struggling with the Hounsfield Value . I googled
> many times and found the formulae to calculate the hounsfield as HU =
> PixelValue * Slope + Intercept .

Instead of "googling", you should first read and try to understand the
only reference that is relevant in this context: the DICOM standard!
The modality transformation and its parameters are described in part 3.

You should not start developing a DICOM viewer or anything else in this
field without understanding the basics. This is at least my opinion.

Also using any of the existing DICOM toolkits might be a good idea ...

Regards,
Jörg Riesmeier

David Clunie

unread,
May 16, 2012, 6:37:15 AM5/16/12
to
This begs the question of what type of image it is and where you
are getting the "pixel value" from.

HU only applies to single channel (grayscale) CT images (that are not
localizers), and these would never have an ARGB pixel value, at least
not in the "stored pixel values" encoded in DICOM data element
(7FE0,0010).

So, if you do indeed have grayscale CT image, then you have to get
access to those "stored pixel values", and not the values that may
be further down your rendering pipeline (e.g., to display on a color
screen). If you are using some kind of toolkit to extract the DICOM
images and display them, then a "getPixelvalue()" call on the
screen buffer (rendered image) is not going to give you what you
need, since the rescale and window values and a color lookup table
will already have been applied.

Take care when you access the "stored pixel values" that you also
account for negative values (sign extension of < 16 bit values to
the native 16 bit integer (short ?) of your platform), after first
masking our any "high bits" that might contain overlays, and after
detecting and treating any "pixel padding values" specially.

This is non-trivial stuff, and better handled by a DICOM toolkit. Are
you using one, and if so which one, in which case someone can give
an answer specific to that toolkit?

David

ananth_eurekha

unread,
May 17, 2012, 3:29:17 AM5/17/12
to dcl...@dclunie.com
Hi,

I am
Hi,
Well i am using the rendered pipeline value till now , from now i am switching into stored values . And also i have migrated dcm4che toolkit . Now i have some questions of how can i fetch the corresponding stored value based on mouse position .
0 new messages