[Insight-users] Volview Adds more contours than needed : Labels are not Intensities

KenLists kenlists at nycap . rr . com
Fri, 28 Nov 2003 13:39:12 -0500


The modification of label 180 to be larger, 230 or 231 etc, can be done =
with
the threshold plugin. Also I believe the threshold plugin can be used to
modify values > 180 to be zero which would also let you generate your
contour.

Ken

> -----Original Message-----
> From: insight-users-admin at itk . org [mailto:insight-users-admin at itk . org] =
On
> Behalf Of Luis Ibanez
> Sent: Friday, November 28, 2003 11:42 AM
> To: Yasser Bashir
> Cc: insight-users at itk . org
> Subject: Re: [Insight-users] Volview Adds more contours than needed :
> Labels are not Intensities
>=20
>=20
> Hi Yasser,
>=20
> Thaks for posting your labeled image,
> that make things much clearer.
>=20
> You cannot use marching cubes (nor any other
> iso-surface extraction algorithm for that matter)
> in order to extract surfaces from a labeled image.
>=20
> Iso-surface extraction relies on the fact that
> all the pixels inside a region have intensity
> values lower than the iso-value and that all the
> external pixels surrounding the region have
> intensity values higher than the iso-value.
>=20
> In your image, you have the case in which a structure
> is labeled as "180" and it is in contact with regions
> with labels: 0 and 196.
>=20
> There is no way in which an iso-contour algorithm
> could extract the boundary of the region with label 180.
> If you try to recover the boundary between the label 180
> and 196 you have to chose an isovalue between 180 and 196,
> let's say 185. While if you want to extract the boundary
> between the region labeled 180 and the region labeled 0
> you have to select an iso-value between 0 and 180, let's say
> 70.
>=20
> It is impossible in this case to find a single iso-value that
> will extract the entire boundary of the region labeled at 180.
>=20
> There is a simple solution however: just make sure that the
> label assigned to the region you want to iso-surface, is the
> largest or the lowest of all the labels.  That is, simply
> replace 180 with 230.  In that case it will be surrounded by
> regions at 0 and 196 that are all lower than 230.  You can
> then use an iso-value like 225 in order to extract the surface
> of your region of interest.
>=20
> What you have to keep in mind is that labels are interpreted
> as intensity values by the marching cubes algorithm. However
> labels do not represent any scalar value. They are just like
> letters. You can assign any value to a labe as long as it is
> different from any other label.
>=20
> --
>=20
> One nice option in VolView is to create mult-component datasets.
> In your case, you have 4 objects plust a background. You could
> create binary masks for each one of the 4 objects and load them
> in VolView using the Volume Merge option.
>=20
> You will find this option under :
>=20
>=20
>     "View" --> "Filters" --> "Utility" --> "Merge Volumes"
>=20
> one by one, you selecte one of the binary masks as a "second
> input" and it will get merged with the current components of
> the data set.  Then you can extract iso-contours per individual
> component.  If you go to the "Contours" menu, you will see that
> there is a "Component" option under the "Isovalue" slicer.
>=20
> I will strongly recomend you to apply the ITK AntiAlias image
> filter to the binary masks  before you merge them and attempt
> to extract iso-surfaces from them. Binary masks look really
> bad when you extract iso-surfaces because you get all the
> staircase effects.
>=20
> In any case, the very nature of segmentation makes unlikely that
> your binary masks are accurate on the borders, therefore you are
> more clear by using a fuzzy representation for the boundaries
> of the regions.
>=20
>=20
> Please let us know if you have further questions.
>=20
>=20
> Thanks
>=20
>=20
>    Luis
>=20
>=20
>=20
> ------------------------
> Yasser Bashir wrote:
>=20
> > Hi Luis,
> >
> > Thank you for your response.
> >
> > Does it mean that the marchingCubes alone is insufficient for =
generating
> > surface representation of objects in a labelled image.  Can you also
> explain
> > the difference between a labelled and a segmented image in ITKs =
context?
> >
> > Attached are a few slices from my labelled image.
> >
> > Yasser
> > ----- Original Message -----
> > From: "Luis Ibanez" <luis . ibanez at kitware . com>
> > To: "ITK Stanford" <itk_at_stanford at yahoo . com>
> > Cc: <insight-users at itk . org>
> > Sent: Thursday, November 27, 2003 8:42 PM
> > Subject: Re: [Insight-users] Volview Adds more contours than needed
> >
> >
> >
> >>Hi ITK-Stanford
> >>
> >>There is something strange in your description of the
> >>problem.  Adding contours in VolView should only generate
> >>iso-level at a particular value. It will not select a
> >>region that has an assigned value.
> >>
> >>If what you did was to *label* the segmented images and
> >>you assigned a label value of 182 to the aorta, and a
> >>label value of 0 to the trachea then spurious contours may
> >>appear around the trachea if the trachea has bordering
> >>labels that are at values > 182.
> >>
> >>Keep in mind that when you ask for an iso-contours at level
> >>182 what you are computing is a surface with values < 182
> >>in one side and values > 182 on the other side. You are not
> >>asking for the surface surrounding a region whose value is 182.
> >>
> >>
> >>
> >>Here is a simple solution for your problem:
> >>
> >>                     Use the ITK plugins in VolView.
> >>
> >>Simply load your stack of images, then go to the menu
> >>
> >>                    "View" -> "Filter"
> >>
> >>and select the group
> >>
> >>                 "Segmentation - Region Growing"
> >>
> >>Then the filter
> >>
> >>                 "Confidence Connected (ITK)"
> >>
> >>Set
> >>
> >>the number of iterations to 2
> >>the multiplier to 1.0
> >>the output value to 255
> >>
> >>Then go to the menu
> >>
> >>                  "View" -> "Markers"
> >>
> >>enable "Display 3D cursor" and "Display 3D markers"
> >>
> >>Add a 3D marker inside the structure that you want to
> >>contour.
> >>
> >>Then go back to the filters menu (there should be a
> >>tab for it now) and click in "Apply Filter" the
> >>segmentation result will be a binary image of your
> >>label (eg. the region at label value 182 if that's
> >>where you put the 3D marker).  Once there, you can
> >>enable a contour at value level 128.
> >>
> >>You will also find useful to run the AntiAlias image
> >>filter available in the group " Surface Generation"
> >>it will smooth the iso-surface of your binary segmenation
> >>by reducing the staircase effects of the typical binary
> >>images.
> >>
> >>
> >>Please let us know if you find any problems,
> >>
> >>
> >>Thanks
> >>
> >>
> >>    Luis
> >>
> >>
> >>--------------------------------------------------------
> >>ITK Stanford wrote:
> >>
> >>
> >>>Hi,
> >>>
> >>>I have a stack of .pgm files containing a segmented volume of the
> >>>heart.  I can open and view the intensity values of pixels in
> >>
> >>volview.
> >>
> >>>However, adding a contour at a certain intensity value, adds =
contours
> >>>for that value and all values lower than it.  For example the
> >>
> >>intensity
> >>
> >>>value of the descending aorta is 182 and the intensity value of
> >>
> >>trachea
> >>
> >>>is 0.  However adding a contour at value 182 also adds a contour at
> >>
> >>value 0.
> >>
> >>>Any idea why this is happening and how can it be fixed??
> >>>
> >>>All help will be appreciated
> >>>--
> >>>
> >>
> >>
> >>_______________________________________________
> >>Insight-users mailing list
> >>Insight-users at itk . org
> >>http://www . itk . org/mailman/listinfo/insight-users
>=20
>=20
>=20
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk . org
> http://www . itk . org/mailman/listinfo/insight-users