<div dir="ltr"><div style><span style="font-family:verdana,sans-serif">Today </span><font face="verdana, sans-serif">I finally managed to try it myself, and it works. Below is implementation in ITK, if anyone needs it.</font></div>

<div><font face="courier new, monospace"><br></font></div><font face="courier new, monospace">typedef itk::Image&lt;unsigned char, 3&gt; VisualizingImageType;<br></font><div><font face="courier new, monospace">typedef itk::Image&lt;float, 3&gt; InternalImageType;<br>

</font></div><div><font face="courier new, monospace"><br></font></div><div style><font face="courier new, monospace">//function call example</font></div><div><font face="courier new, monospace"><div><div>std::vector&lt;VisualizingImageType::IndexType&gt; centers;</div>

<div>for (int i=0; i&lt;vertebra.size(); i++)</div><div><span class="" style="white-space:pre">        </span>centers.push_back(vertebra[i]-&gt;centerIndex);</div><div>VisualizingImageType::Pointer vInfluence=multilabelDilation(region, 50, centers);</div>

</div><div><br></div><div><br></div><div><div>VisualizingImageType::Pointer multilabelDilation(itk::ImageRegion&lt;3&gt; region, float radius, std::vector&lt;VisualizingImageType::IndexType&gt; points)</div><div>{</div><div>

    typedef itk::BinaryBallStructuringElement&lt;VisualizingImageType::PixelType,3&gt; BallType;</div><div>    BallType ball;</div><div>    ball.SetRadius(radius);</div><div>    ball.CreateStructuringElement();</div><div>

    typedef itk::BinaryDilateImageFilter&lt;VisualizingImageType, VisualizingImageType, BallType&gt; growType;</div><div>    growType::Pointer grow=growType::New();</div><div>    grow-&gt;SetKernel(ball); //grow-&gt;SetRadius(radius);</div>

<div><br></div><div>    VisualizingImageType::Pointer image=VisualizingImageType::New();</div><div>    image-&gt;SetRegions(region);</div><div>    image-&gt;Allocate();</div><div>    image-&gt;FillBuffer(0);    </div><div>

    for (int i=0; i&lt;points.size(); i++)</div><div>        image-&gt;SetPixel(points[i], grow-&gt;GetDilateValue());</div><div><br></div><div>    grow-&gt;SetInput(image);</div><div>    grow-&gt;Update();</div><div>    writeImage(grow-&gt;GetOutput(), &quot;1dilate.nrrd&quot;); //debug</div>

<div><br></div><div>    typedef itk::SignedMaurerDistanceMapImageFilter&lt;VisualizingImageType, InternalImageType&gt; DistanceMapType;</div><div>    DistanceMapType::Pointer dm=DistanceMapType::New();</div><div>    dm-&gt;SetInput(image);</div>

<div>    dm-&gt;SetUseImageSpacing(true);</div><div>    dm-&gt;InsideIsPositiveOff();</div><div>    dm-&gt;Update();</div><div>    writeImage(dm-&gt;GetOutput(), &quot;2distanceMap.nrrd&quot;); //debug</div><div><br></div>

<div>    for (int i=0; i&lt;points.size(); i++)</div><div>        image-&gt;SetPixel(points[i], i+1); //now set index+1</div><div><br></div><div>    typedef itk::MorphologicalWatershedFromMarkersImageFilter&lt;InternalImageType, VisualizingImageType&gt; morphoWSfMType;</div>

<div>    morphoWSfMType::Pointer ws=morphoWSfMType::New();</div><div>    ws-&gt;SetInput1(dm-&gt;GetOutput());</div><div>    ws-&gt;SetInput2(image);</div><div>    ws-&gt;Update();</div><div>    writeImage(ws-&gt;GetOutput(), &quot;3watershed.nrrd&quot;); //debug</div>

<div><br></div><div>    typedef itk::AndImageFilter&lt;VisualizingImageType&gt; AndType;</div><div>    AndType::Pointer and=AndType::New();</div><div>    and-&gt;SetInput1(ws-&gt;GetOutput());</div><div>    and-&gt;SetInput2(grow-&gt;GetOutput());</div>

<div>    and-&gt;Update();</div><div>    writeImage(and-&gt;GetOutput(), &quot;4multiplied.nrrd&quot;); //debug</div><div><br></div><div>    return and-&gt;GetOutput();</div><div>}</div></div></font></div></div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Fri, Feb 8, 2013 at 11:36 AM, Bradley Lowekamp <span dir="ltr">&lt;<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word">Unfortunately, my helpful e-mail was too big to make it to the list. So here is the important bit, which defines a function in Python with SimpleITK:<div><br></div><div><div class="im"><pre style="margin-top:0px;margin-bottom:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;font-family:inherit;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;word-wrap:normal">

<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(0,128,0);font-weight:bold">def</span> <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">MultilabelDilation</span>(<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">img</span>, <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">radius</span>=<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(0,0,128)">1</span>,<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">kernel</span>=<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">sitk.BinaryDilateImageFilter.Ball</span>):</pre>

<pre style="margin-top:0px;margin-bottom:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;font-family:inherit;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;word-wrap:normal">

    <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">distImg</span> = <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">sitk.SignedMaurerDistanceMap</span>(<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">img</span> <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(170,34,255);font-weight:bold">!=</span> <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(0,0,128)">0</span>, <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">insideIsPositive</span>=<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(0,128,0)">False</span>, <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">squaredDistance</span>=<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(0,128,0)">False</span>, <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">useImageSpacing</span>=<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(0,128,0)">False</span>)</pre>

<pre style="margin-top:0px;margin-bottom:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;font-family:inherit;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;word-wrap:normal">

    <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">dilatImg</span> = <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">sitk.BinaryDilate</span>(<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">img</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(170,34,255);font-weight:bold">!=</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(0,0,128)">0</span>, <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">radius</span>, <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">kernel</span>)</pre>

<pre style="margin-top:0px;margin-bottom:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;font-family:inherit;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;word-wrap:normal">

    <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">wsImg</span> = <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">sitk.MorphologicalWatershedFromMarkers</span>(<span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">distImg</span>, <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">img</span>)</pre>

<pre style="margin-top:0px;margin-bottom:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;font-family:inherit;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;word-wrap:normal">

    <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(0,128,0);font-weight:bold">return</span> <span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">dilatImg</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(170,34,255);font-weight:bold">*</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline">wsImg</span></pre>

<div><br></div><div><br></div></div><div class="im"><div><br><div><div>On Feb 8, 2013, at 9:42 AM, Dženan Zukić &lt;<a href="mailto:dzenanz@gmail.com" target="_blank">dzenanz@gmail.com</a>&gt; wrote:</div><br><blockquote type="cite">

<div dir="ltr"><font><font face="verdana,sans-serif">Thanks for the interest and the provided code Brad. Hopefully I will get to work today to try it out myself :D (Blizzard warning in Boston, where I am for a couple months)</font></font>
</div><div class="gmail_extra"><br></div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>