<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hi,<div>&nbsp;</div><div>&nbsp;&nbsp; I know I've know i already asked that, but i was wondering, better hoping that i am doing something wrong:</div><div>&nbsp;&nbsp; I am using a dicom Series of 25 slices of image t2 Head MRT 640x640&nbsp;</div><div>&nbsp;&nbsp; min gray value = -51</div><div>&nbsp;&nbsp; max gray value = 1359</div><div>&nbsp;I want to use the GeodesicActiveContourFilter, but i get only bad Segmentation results. So i tried to improve the Output of the Sigmoid, which is still partly to dark. I read what it does but still couldn't get good parameters so that the final segmentation is a good one.</div><div>&nbsp;&nbsp; A more important question is this normal that the computation of &nbsp;the sigmoid output in the pipeline step for this filters takes around 3 minutes?</div><div>&nbsp;&nbsp;It is really important for me to know because i intend
 to use it on a dicom series of 160 slices.</div><div>This is a part of my code If anyone has an idea why it is so slow please let me know:</div><div><br></div><div>Reading dicom series works just fine and fast</div><div><br></div><div><br></div><div><div>GradientFilterType::Pointer gradientMagnitude = GradientFilterType::New();</div><div>&nbsp;&nbsp;SigmoidFilterType::Pointer sigmoid =
 SigmoidFilterType::New();</div><div>&nbsp;&nbsp;sigmoid-&gt;SetOutputMinimum(0.0);</div><div>&nbsp;&nbsp;sigmoid-&gt;SetOutputMaximum(1.0);</div><div>&nbsp;&nbsp;</div><div>&nbsp;&nbsp;smoothing-&gt;SetInput(reader-&gt;GetOutput());</div><div>&nbsp;&nbsp;gradientMagnitude-&gt;SetInput(smoothing-&gt;GetOutput());</div><div>&nbsp;&nbsp;sigmoid-&gt;SetInput(gradientMagnitude-&gt;GetOutput());</div><div><br></div><div>&nbsp;&nbsp;smoothing-&gt;SetTimeStep(0.0625);</div><div>&nbsp;&nbsp;smoothing-&gt;SetNumberOfIterations(10);</div><div>&nbsp;&nbsp;smoothing-&gt;SetConductanceParameter(1.0);</div><div><br></div><div>&nbsp;&nbsp;const double sigma = 1.0;</div><div>&nbsp;&nbsp;gradientMagnitude-&gt;SetSigma(sigma);</div><div><br></div><div>&nbsp;&nbsp;sigmoid-&gt;SetAlpha(-6.0);</div><div>&nbsp;sigmoid-&gt;SetBeta(30.0);</div><div>&nbsp;std::cout &nbsp;&lt;&lt; "I start to do my Stuff " &lt;&lt; std::endl &lt;&lt;
 std::endl;</div><div>&nbsp;CastFilterType::Pointer caster1 = CastFilterType::New();</div><div>&nbsp;……….</div><div>&nbsp;WriterTypeChar::Pointer writerfinal = WriterTypeChar::New();</div><div>ImageType::Pointer localImage = reader-&gt;GetOutput();</div><div>typedef itk::FastMarchingImageFilter&lt;ImageType,ImageType &gt; FastMarchingFilterType;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>FastMarchingFilterType::Pointer fastMarching = FastMarchingFilterType::New();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>typedef itk::GeodesicActiveContourLevelSetImageFilter&lt; ImageType,ImageType &gt; GeodesicActiveContourFilterType;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>GeodesicActiveContourFilterType::Pointer geodesicActiveContour = GeodesicActiveContourFilterType::New();</div><div><span
 class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>const double propagationScaling = 10.0;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>geodesicActiveContour-&gt;SetPropagationScaling(propagationScaling);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>geodesicActiveContour-&gt;SetCurvatureScaling(1.0);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>geodesicActiveContour-&gt;SetAdvectionScaling( 1.0 );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>geodesicActiveContour-&gt;SetMaximumRMSError( 0.02 );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>geodesicActiveContour-&gt;SetNumberOfIterations( 120
 );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>geodesicActiveContour-&gt;SetInput( fastMarching-&gt;GetOutput() );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>geodesicActiveContour-&gt;SetFeatureImage( sigmoid-&gt;GetOutput() );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>thresholder-&gt;SetInput( geodesicActiveContour-&gt;GetOutput() );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>ImageType::IndexType index1;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>index1[0] = 381;</div><div><span class="Apple-tab-span"
 style="white-space:pre">                </span>index1[1] = 423;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>index1[2] = 14;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>ImageType::IndexType index2;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>index2[0] = 260;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>index2[1] = 413;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>index2[2] = 14;<span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>typedef FastMarchingFilterType::NodeContainer NodeContainer;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>typedef FastMarchingFilterType::NodeType NodeType;&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NodeContainer::Pointer seeds =
 NodeContainer::New();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>double initialDistance = 5.0;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>double seedValue = -initialDistance;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NodeType node1;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>node1.SetValue(seedValue);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>node1.SetIndex(index1);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>seeds-&gt;Initialize();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>seeds-&gt;InsertElement(0,node1);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>NodeType node2;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>node2.SetValue(seedValue);</div><div><span class="Apple-tab-span"
 style="white-space:pre">                </span>node2.SetIndex(index2);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>seeds-&gt;InsertElement(1,node2);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>fastMarching-&gt;SetTrialPoints(seeds);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>fastMarching-&gt;SetSpeedConstant(1.0);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>fastMarching-&gt;SetOutputSize(reader-&gt;GetOutput()-&gt;GetBufferedRegion().GetSize());</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>std::cout &lt;&lt; "Fast Marching started " &lt;&lt; std::endl &lt;&lt; std::endl;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>caster4-&gt;SetInput( fastMarching-&gt;GetOutput() );</div><div><span class="Apple-tab-span" style="white-space:pre">        
        </span>writer4-&gt;SetInput( caster4-&gt;GetOutput() );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>char *name4 = "/Users/ellaK/Documents/DicomRead/FFM.gipl";</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>writer4-&gt;SetFileName(name4);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>caster4-&gt;SetOutputMinimum( 0 );</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>caster4-&gt;SetOutputMaximum( 255 );<span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>try{</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>writer4-&gt;Update();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>catch( itk::ExceptionObject &amp; excep ){</div><div><span
 class="Apple-tab-span" style="white-space:pre">                        </span>std::cerr &lt;&lt; "Exception caught at writer1!" &lt;&lt; std::endl;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>std::cerr &lt;&lt; excep &lt;&lt; std::endl;</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>writerfinal-&gt;SetInput(thresholder-&gt;GetOutput());</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>char *name6 = "/Users/ellaK/Documents/DicomRead/Segmentation.gipl";</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>writerfinal-&gt;SetFileName(name6);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>try</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>{</div><div><span class="Apple-tab-span"
 style="white-space:pre">                </span>writerfinal-&gt;Update();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>catch( itk::ExceptionObject &amp; excep )</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>std::cerr &lt;&lt; "Exception caught at writerfinal!" &lt;&lt; std::endl;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>std::cerr &lt;&lt; excep &lt;&lt; std::endl;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}&nbsp;</div><div>}</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><br></div><div><br></div></div><div>&nbsp;</div></td></tr></table><br>