[vtkusers] Hounsfield Units of Human body part

Wes Turner wes.turner at kitware.com
Thu Aug 26 14:28:15 EDT 2010


Chasan,

Marching Cubes looks for the boundary where the voxel value goes from below
the threshold value to above the threshold value.  CT is a noisy modality
and you should not expect that all the bone voxels will be at the optimal
bone value.  Assuming that 1250 is the average value for bone, then one half
of the bone voxels will be at or below 1250.  So setting the Marching Cubes
threshold to that level will give a very poor segmentation.

You should set the Marching Cubes threshold at somewhere between the value
outside of the bone vs the value of the bone.   Based on your numbers, I
would probably go with around 650 as a starting point and then adjust up or
down based on image characteristics and the quality of the output
segmentation until I reach a suitable value.  The noise level of the image,
patient age, surrounding material (i.e. in vivo or ex vivo), and age of the
bones (for ex vivo) will all have an impact on the determining the proper
threshold.

- Wes

On Thu, Aug 26, 2010 at 2:13 PM, Chasan KIOUTSOUKMOUSTAFA <chasank at yahoo.com
> wrote:

> I'm using vtkDICOMImageReader class for reading the images, if i give the
> exact HU values for example;
>
> boneExtractor->SetInputConnection(reader->GetOutputPort());
> boneExtractor->SetValue(0, HUofBone); // HUofBone is 1250
>
> it does not give optimal solution...
> boneExtractor is vtkMarchingCubes object
>
>
> Chasan KIOUTSOUKMOUSTAFA
>
> --- On *Thu, 8/26/10, John Drescher <drescherjm at gmail.com>* wrote:
>
>
> From: John Drescher <drescherjm at gmail.com>
> Subject: Re: [vtkusers] Hounsfield Units of Human body part
> To: "Chasan KIOUTSOUKMOUSTAFA" <chasank at yahoo.com>
> Cc: "vtk mailList" <vtkusers at vtk.org>
> Date: Thursday, August 26, 2010, 9:06 PM
>
> On Thu, Aug 26, 2010 at 1:59 PM, Chasan KIOUTSOUKMOUSTAFA
> <chasank at yahoo.com <http://mc/compose?to=chasank@yahoo.com>> wrote:
> >
> > HUofAir = (double)(reader->GetPixelRepresentation() *
> reader->GetRescaleSlope()) + (double) reader->GetRescaleOffset();
> > // HuofAir represents -1000 HU
> > HUofBone = HUofAir + 2250.0;  // 1250 HU for Bone
> > HUofMuscle = HUofAir + 1050.0; // 50 HU for Muscle
> > HUofFat = HUofAir + 880; // -120 HU for Fat
> >
>
> How are you reading your images? They already should be in Hounsfield
> ( no no calculation is needed) if you use the vtk image readers and
> use signed short images.
>
> John
>
>
>
> _______________________________________________
> 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
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>


-- 
Wesley D. Turner, Ph.D.
Kitware, Inc.
Technical Leader
28 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4920
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100826/4cfd44b2/attachment.htm>


More information about the vtkusers mailing list