[Insight-users] Fwd: Re: Filling big 3D holes
Richard Beare
richard.beare at gmail.com
Wed Feb 2 23:34:04 EST 2011
The original message mentioned watertight parts - connected components
will only work if this is true.
Basically it sounds like you want to segment the entire artery
network, not just the wall - is that right?
It also sounds as though the walls are labelled (but not perfectly)
and that the blood and outside are similar intensity. Is the arterial
network connected within your snapshot? i.e. should you be able to
travel along arteries and reach all of the artery interiors you are
interested in without leaving an artery?
My standard approach in this situation is always to draw a marker
inside an artery, draw a background marker, compute a gradient image
and run a watershed transform. It works surprisingly often, and where
it fails will give you insight into how to improve it. In your case
you may be able to use the raw image as the gradient if the bright
zones correspond to edges of your regions of interest.
On Thu, Feb 3, 2011 at 3:23 PM, brian avants <stnava at gmail.com> wrote:
> gib
>
> another alternative is a topology preserving level set --- we have
> this code available here
>
> http://www.insight-journal.org/browse/publication/778
>
> brian
>
>
>
>
> On Wed, Feb 2, 2011 at 11:12 PM, Gib Bogle <g.bogle at auckland.ac.nz> wrote:
>> (sorry for forgetting to "reply-all")
>>
>> -------- Original Message --------
>> Subject: Re: [Insight-users] Filling big 3D holes
>> Date: Thu, 03 Feb 2011 17:04:25 +1300
>> From: Gib Bogle <g.bogle at auckland.ac.nz>
>> To: Richard.Beare at ieee.org
>>
>> Hi Richard,
>>
>> If I understand you correctly, the problem with the alternate method you
>> suggest
>> is that I cannot rely on the continuity of the vessel walls. A vessel might
>> be
>> locally continuous, but there are always going to be holes in the walls
>> somewhere in the vascular network, and some of the big vessels are riddled
>> with
>> holes.
>>
>> I spent some time trying to develop an algorithm for patching the gaps in
>> the
>> walls. It works quite well, but unless it patches all the gaps it still
>> doesn't
>> enable application of a hole-filling algorithm based on connectivity.
>>
>> Thanks
>> Gib
>>
>> On 3/02/2011 4:49 p.m., Richard Beare wrote:
>>>
>>> Hi,
>>> There is a fillholes filter that is part of the binary attribute
>>> morphology contribution. Alternatively, you can build a hole filler
>>> using either connected component labelling or reconstruction
>>> approaches. If you start with your binary image, label the non edge
>>> intensity. Then throw away the label touching the image edge. The
>>> remaining blobs should be the interior or your arteries. Combine these
>>> with the original binary image to fill the holes.
>>>
>>> On Thu, Feb 3, 2011 at 2:28 PM, Gib Bogle<g.bogle at auckland.ac.nz> wrote:
>>>>
>>>> I'm working with a volume image that was generated by labelling the
>>>> laminae
>>>> of blood vessels. My aim is to segment out the vasculature. There are
>>>> many
>>>> difficulties, and the particular issue I'm addressing at the moment is
>>>> filling in the vessels. The intensity of the labelling of the walls is
>>>> variable, with patches that are indistinguishable from background. The
>>>> vessel diameters vary widely, from about 4 to about 60 voxels. After
>>>> some
>>>> preprocessing I have a binary image, on which the ITK hole-filling
>>>> function
>>>> works well with the small-diameter vessels, but the big vessels present a
>>>> problem, even when the walls are "watertight" (i.e. without holes).
>>>>
>>>> My best idea so far is to send probes out in all 26 directions (all
>>>> neighbours of a voxel) and count the number of probes that hit a wall
>>>> within
>>>> a specified radius. It's tricky to specify both the radius and the
>>>> critical
>>>> number of hits, without getting too many false positives (voxels outside
>>>> the
>>>> vessels showing up as inside). (The filter is of course applied
>>>> iteratively.)
>>>>
>>>> I'm wondering if anyone else here has addressed a similar problem.
>>>>
>>>> Thanks
>>>> Gib
>>>> _____________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Kitware offers ITK Training Courses, for more information visit:
>>>> http://www.kitware.com/products/protraining.html
>>>>
>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.html
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
More information about the Insight-users
mailing list