<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Correction:&nbsp;<div>I meant to type "lose some valuable..."</div><div><br></div><div><br>--- On <b>Thu, 2/3/11, Dawood Masslawi <i>&lt;davoud_zzz@yahoo.com&gt;</i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Dawood Masslawi &lt;davoud_zzz@yahoo.com&gt;<br>Subject: Re: Filling big 3D holes<br>To: "Gib Bogle" &lt;g.bogle@auckland.ac.nz&gt;<br>Cc: insight-users@itk.org<br>Date: Thursday, February 3, 2011, 7:42 PM<br><br><div id="yiv1100461419"><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td valign="top" style="font:inherit;">Glad to help.<div><br><div>As you anticipated the indistinguishable intensity difference makes it harder to locate</div><div><br></div><div>the walls properly, for the same reason binary thresholding would not gain good
 results</div><div><br></div><div>either. However, smoothing might improve the results depending on the extent of the gaps.</div><div><br></div><div>Smaller gaps can be filled using a smoothing approach prior to the segmentation. The&nbsp;</div><div><br></div><div>downside is that after the smoothing you might loose some valuable intensity difference.</div><div><br></div><div>Best of luck,</div><div><br></div><div>Dawood</div><div><br></div><div><br>--- On <b>Thu, 2/3/11, Gib Bogle <i>&lt;g.bogle@auckland.ac.nz&gt;</i></b> wrote:<br><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;"><br>From: Gib
 Bogle &lt;g.bogle@auckland.ac.nz&gt;<br>Subject: Re: Filling big 3D holes<br>To: "Dawood Masslawi" &lt;davoud_zzz@yahoo.com&gt;<br>Cc: insight-users@itk.org<br>Date: Thursday, February 3, 2011, 6:55 PM<br><br><div class="yiv1100461419plainMail">Thanks very much Dawood.&nbsp; I've just scratched the surface of ITK, and I have a <br>lot to learn about this subject generally.<br><br>Currently I'm doing only a couple of simple preprocessing steps: a 3x3x3 mean <br>smoothing, then binary thresholding.&nbsp; I was previously experimenting with an <br>approach to fill gaps in the vessel walls.&nbsp; The idea was to determine the local <br>best fit plane (from a pre-specified set of 25 planes), then grow the wall into <br>the gap.&nbsp; This worked quite well in some areas, but not well in others (the <br>problem is that the "best plane" selection doesn't always make the right <br>decision).&nbsp; I've put that aside, and am now focussed on filling the leaky
 <br>vessels,
 with the expectation that the right method will stop filling at the <br>(convex) vessel boundary.<br><br>I'll read the docs on using a priori info for the geodesic active contour. <br>Richard has offered to have a look at my data, so it's fingers crossed.<br><br>Cheers<br>Gib<br><br>On 4/02/2011 11:55 a.m., Dawood Masslawi wrote:<br>&gt; Hi Gib,<br>&gt;<br>&gt; In addition to what Brian and Richard said, maybe using a different segmentation<br>&gt; method<br>&gt;<br>&gt; can improve the results altogether since you have no problems with<br>&gt; small-diameter vessels<br>&gt;<br>&gt; and your problem is with the vessels of large diameter, even when they would have no<br>&gt;<br>&gt; holes. You haven't mentioned what segmentation method you use in your preprocessing<br>&gt;<br>&gt; step, my suggestion is to incorporate a priori in the segmentation based on a<br>&gt; initial<br>&gt;<br>&gt; estimation of a binary edge image with its gaps filled (which
 would be easier<br>&gt; than filling the<br>&gt;<br>&gt; gaps in a binary image). I think there are two segmentation methods already<br>&gt; implemented<br>&gt;<br>&gt; in ITK with the ability to incorporate a priori, geodesic active contour with<br>&gt; shape guidance<br>&gt;<br>&gt; and shape prior level set. Also, the Canny edge detector gives a good estimation<br>&gt; of the<br>&gt;<br>&gt; edges.<br>&gt;<br>&gt; Regards,<br>&gt;<br>&gt; Dawood<br>&gt;<br>&gt;<br>&gt;&nbsp; &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br>&gt;<br>&gt;&nbsp;
 &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br>&gt;<br>&gt;<br>&gt; On Wed, Feb 2, 2011 at 10:28 PM, Gib Bogle&lt;g.bogle at auckland.ac.nz&nbsp; &lt;<a rel="nofollow" target="_blank" href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a>&gt;&gt;&nbsp; wrote:<br>&gt;&gt;/&nbsp; I'm working with a volume image that was generated by labelling the laminae<br>&gt; /&gt;/&nbsp; of blood vessels.&nbsp; My aim is to segment out the vasculature.&nbsp; There are many<br>&gt; /&gt;/&nbsp; difficulties, and the particular issue I'm addressing at the moment is<br>&gt; /&gt;/&nbsp; filling in the vessels.&nbsp; The intensity of the labelling of the walls is<br>&gt; /&gt;/&nbsp; variable, with patches
 that are
 indistinguishable from background.&nbsp; The<br>&gt; /&gt;/&nbsp; vessel diameters vary widely, from about 4 to about 60 voxels.&nbsp; After some<br>&gt; /&gt;/&nbsp; preprocessing I have a binary image, on which the ITK hole-filling function<br>&gt; /&gt;/&nbsp; works well with the small-diameter vessels, but the big vessels present a<br>&gt; /&gt;/&nbsp; problem, even when the walls are "watertight" (i.e. without holes).<br>&gt; /&gt;/<br>&gt; /&gt;/&nbsp; My best idea so far is to send probes out in all 26 directions (all<br>&gt; /&gt;/&nbsp; neighbours of a voxel) and count the number of probes that hit a wall within<br>&gt; /&gt;/&nbsp; a specified radius.&nbsp; It's tricky to specify both the radius and the critical<br>&gt; /&gt;/&nbsp; number of hits, without getting too many false positives (voxels outside the<br>&gt; /&gt;/&nbsp; vessels showing up as inside).&nbsp; (The filter is of course applied<br>&gt; /&gt;/&nbsp; iteratively.)<br>&gt;
 /&gt;/<br>&gt; /&gt;/&nbsp; I'm wondering if anyone else here has addressed a similar problem.<br>&gt; /&gt;/<br>&gt; /&gt;/&nbsp; Thanks<br>&gt; /&gt;/&nbsp; Gib/<br>&gt;<br>&gt;<br></div></blockquote></div></div></td></tr></tbody></table><br>







      </div></blockquote></div></td></tr></table><br>