Dear Amit,<div><br></div><div>Note that the value of the speed image close to edges approaches 0 and increases/decreases</div><div><br></div><div>in the rest of the image (see figure 9.14 in page 532 of the software guide). Having that in&nbsp;</div>

<div><br></div><div>mind, variable K1 refers to the minimum of the&nbsp;image intensity along the tissue contours&nbsp;</div><div><br></div><div>to be segmented (where speed value is 0) and variable K2 refers to the average intensity</div>

<div><br></div><div>value in the rest of the image (preferably inside the object to be segmented).</div><div><br></div><div>The goal of the Sigmoid filter is to generate a speed image similar to what is illustrated in</div>

<div><br></div><div>figure 9.14.</div><div><br></div><div>To get a better idea of how this works it might be helpful to read a chapter from an image</div><div><br></div><div>processing/computer vision textbook&nbsp;on this subject.</div>
<div><br></div><div>Also try changing the parameters and observe the change in the resulting images in the</div><div><br></div><div>pipeline (write the images after execution of each filter).</div><div><br></div><div>Best regards,</div>

<div><br></div><div>Dawood</div><div><br></div><div><br></div><div>&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;&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;&lt;&lt;&lt;&lt;</div>

<div><br></div><div>&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;&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;&lt;&lt;&lt;&lt;</div>

<div><br></div><div><br></div><div><div><br><div class="gmail_quote">On Wed, Jun 22, 2011 at 10:53 AM, amit satish <span dir="ltr">&lt;<a href="mailto:amitsatish.unde@teamta.in" target="_blank">amitsatish.unde@teamta.in</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>


  

<div bgcolor="#ffffff" text="#000000"><div><div></div><div>
On 6/21/2011 4:04 PM, Dawood Al Masslawi wrote:
<blockquote type="cite">
  <div>What do you mean by &quot;failed&quot;?!!</div>
  <div><br>
  </div>
  <div>Did you get errors or just didn&#39;t get the results you desired?</div>
  <div><br>
  </div>
  <div>Parameter tuning is&nbsp;of course&nbsp;time consuming and an error-prone
process but it can be done easier</div>
  <div><br>
  </div>
  <div>if you would have prior knowledge about the components
(pipeline) of the segmentation method.</div>
  <div><br>
  </div>
To get more information about the available segmentation methods in ITK
it&#39;s very helpful to read
  <div><br>
  </div>
  <div>the ITK software guide, specially the &quot;Segmentation&quot; chapter
(chapter 9).&nbsp;</div>
  <div><br>
  </div>
  <div>You also could do a little search on the mailing list &nbsp;and see
previous discussions about the segmentation</div>
  <div><br>
  </div>
  <div>method you want to use, level-set methods certainly has been
discussed frequently!</div>
  <div><br>
  </div>
  <div>Following are some of my posts on this subject,</div>
  <div><br>
  </div>
  <div><br>
  </div>
  <div>------------------------------------------------------</div>
  <div><br>
  </div>
  <div><span style="font-family:&#39;Times New Roman&#39;;font-size:medium">
  <pre>&quot;<span style="font-family:arial;white-space:normal;font-size:small">GeodesicActiveContours processing time and SignedDanielssonDistanceMap<span style="font-family:monospace;font-size:medium;white-space:pre-wrap">&quot;</span></span></pre>


  <pre>You don&#39;t need to use the fastMarching filter if you are using the DanielssonDistanceMap
and vice versa.
If you want to lower the computation time you can decrease the number of iterations or&nbsp;
assign lower values for the maximum allowed RMS.
The initialDistance parameter is the distance between the seed points and the desired
initial contour.</pre>
  <pre>Note that the assigned&nbsp;Alpha and Beta values for the sigmoid filter can have a significant</pre>
  <pre><span style="font-family:&#39;Times New Roman&#39;;white-space:normal"><pre>effect on the results. It is best to choose the Beta close to the initial contour value and&nbsp;
assign the Alpha in which an acceptable range of values around the Beta would be
mapped.</pre><font face="arial"><span style="font-size:small">&quot;on tuning Laplacian Level Set Segmentation (LaplacianSegmentationLevelSetImageFilter.cxx)&quot;</span></font>

<pre><span style="font-family:&#39;Times New Roman&#39;;white-space:normal"><pre>For better convergence it is best to have a good initial estimation
of the level set as a seed image. Larger number of iterations alone
does not guarantee the convergence.
Basically using the diffusion filter improves the quality of&nbsp;the
segmentation, however over-diffusing the images can cause loss of&nbsp;
details.&nbsp;
You can use the resulting image (SpeedImage.mha) to determine that&nbsp;
to what extent you want to diffuse the input image. Increasing the&nbsp;
number of diffusion iterations and higher values for the conductance
will give a more diffused image.
Propagation weight determines the relative amount emphasis on&nbsp;
the propagation speed and with higher values results in narrower&nbsp;
surfaces, opposing to the curvature&nbsp;weight (curvature scaling) which&nbsp;
with higher values gains smoother surfaces.
The isovalue I think is best to be assigned as halfway between the
maximum and minimum values in the seed image. 
Also, Premature elimination might be the result of the low maximum&nbsp;
allowed RMS.
As for number of iterations for both diffusion and segmentation after
couple of tries and assigning different values you should be able to
find the best fit for your application.</pre><font face="arial"><span style="font-size:small">&quot;handle watershed oversegmentation&quot;</span></font></span></pre></span></pre>
  <pre><span style="font-family:&#39;Times New Roman&#39;;white-space:normal"><pre>The level of details in watershed segmentation is controlled by a
smoothing step. It is most likely that the parameter setting
for the smoothing step in your application is causing an under-smoothing
effect. Usually for smoothing prior to the watershed segmentation an&nbsp;
anisotropic&nbsp;diffusion filter is used. The level of smoothing in anisotropic&nbsp;
diffusion filter is controlled by three parameters, number of iterations,&nbsp;
time step and conductivity. Increasing the number of iterations and the&nbsp;
conductivity factor can smooth more edges.
However, depending on your images better results might be achievable&nbsp;
using a different smoothing method.</pre><pre></pre><pre>------------------------------------------</pre><pre></pre><pre>There are sure more discussions on the mailing list, I just included some I wrote</pre><pre></pre><pre>
in previous discussions.</pre><pre></pre><pre>One little thing to add, the time step for the diffusion filter should be less than</pre><pre></pre><pre>1/(2^N), N being image dimensions. Usually something around 0.125 works fine (for 2D images).</pre>


<pre></pre><pre>Also note that the described segmentation methods in the ITK software guide are just </pre><pre></pre><pre>examples and you can replace any of the used components with other filters better suited</pre>
<pre></pre><pre>to your application.</pre><pre></pre><pre>By the &quot;middle bright region&quot; do you mean the cerebral hemisphere, White Matter or the white</pre><pre></pre><pre>region (tumor?!!) in the middle of the right lobe?</pre>


<pre></pre><pre>Dawood</pre><pre></pre></span></pre>
  </span></div>
  <div><br>
  </div>
  <div>&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;&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;&lt;&lt;&lt;&lt;&lt;</div>


  <div>&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;&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;&lt;&lt;&lt;&lt;&lt;</div>


  <div><br>
  </div>
  <div><br>
  <div class="gmail_quote">On Tue, Jun 21, 2011 at 10:18 AM, amit
satish <span dir="ltr">&lt;<a href="mailto:amitsatish.unde@teamta.in" target="_blank">amitsatish.unde@teamta.in</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
    <div bgcolor="#ffffff" text="#000000">
On 6/18/2011 5:40 PM, Dawood Al Masslawi wrote:
    <blockquote type="cite">Hi Amit,
      <div><br>
      </div>
      <div>In addition to what Kevin said, select the Alpha and Beta
values
such that the regions you want to&nbsp;</div>
      <div><br>
      </div>
      <div>segment would be emphasized in the resulting image, for an
instance, make the bright regions brighter&nbsp;</div>
      <div><br>
      </div>
      <div>if you want to segment the bright regions.</div>
      <div><br>
      </div>
      <div>Choose the value for Sigma based on how much detail you want
to
include in the segmented image,&nbsp;</div>
      <div><br>
      </div>
      <div>lower values will result in more details and higher values
will
smooth more details hence resulting in less&nbsp;</div>
      <div><br>
      </div>
      <div>details in the segmented image.</div>
      <div><br>
      </div>
      <div>Assigning the seed points and the threshold by users
(radiologists in your case) can be done using Graphical User Interface&nbsp;</div>
      <div><br>
      </div>
      <div>tools such as FLTK or Qt and VTK, but it&#39;s probably better
to
get your application up and running before developing a GUI.</div>
      <div><br>
      </div>
      <div>Hope that helps,</div>
      <div><br>
      </div>
      <div>Dawood</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>&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;&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;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;</div>


      <div>&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;&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;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br clear="all">


      <br>
      </div>
      <div><br>
      <span style="font-family:&#39;Times New Roman&#39;;font-size:medium">
      <pre>On 06/17/2011 01:39 AM, <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">amitsatish.unde at teamta.in</a> wrote:
&gt;<i> I am using ItK fast marching for liver tumor segmentation. I want to select manually seed point and output is segmented tumor. My problems is as below,
</i>&gt;<i> 1.can you specify exact value of alpha,beta and sigma for all examples?
</i>&gt;<i> <a href="http://2.it" target="_blank">2.it</a>&#39;s very difficult to give threshold value everytime. I am trying to implement a method such that radiologists will choose seed point in tumor region and our algorithm will give exact boundary of tumor. All other parameters i want to set by me.
</i>&gt;<i>
</i>&gt;<i>
</i>&gt;<i> Regards,
</i>&gt;<i> Amit
</i>
The parameters used in the software guide for the fast marching
example are listed at the top of the source code :

//  Software Guide : BeginCommandLineArgs
//    INPUTS: {BrainProtonDensitySlice.png}
//    OUTPUTS: {FastMarchingImageFilterOutput5.png}
//    81 114 1.0  -0.5  3.0   100 100
//  Software Guide : EndCommandLineArgs
//  Software Guide : BeginCommandLineArgs
//    INPUTS: {BrainProtonDensitySlice.png}
//    OUTPUTS: {FastMarchingImageFilterOutput6.png}
//    99 114 1.0  -0.5  3.0   100 100
//  Software Guide : EndCommandLineArgs
//  Software Guide : BeginCommandLineArgs
//    INPUTS: {BrainProtonDensitySlice.png}
//    OUTPUTS: {FastMarchingImageFilterOutput7.png}
//    56 92 1.0  -0.3  2.0   200 100
//  Software Guide : EndCommandLineArgs
//  Software Guide : BeginCommandLineArgs
//    INPUTS: {BrainProtonDensitySlice.png}
//    OUTPUTS: {FastMarchingImageFilterOutput8.png}
//    OUTPUTS: [FastMarchingFilterOutput1.png]
//    OUTPUTS: [FastMarchingFilterOutput2.png]
//    OUTPUTS: [FastMarchingFilterOutput3.png]
//    40 90 0.5  -0.3  2.0   200 100
//  Software Guide : EndCommandLineArgs

Unfortunately, the parameters are there for a reason, one value
does not always work well for all images.

My advice to you is to take the example programs and to cut them
up into the smallest usable pieces so that you can actually look
at the images at each step. For the fast marching example you&#39;d
end up with 5 tiny programs :

reader -&gt; smoother           -&gt; writer
reader -&gt; gradient magnitude -&gt; writer
reader -&gt; sigmoid            -&gt; writer
reader -&gt; fast marching      -&gt; writer
reader -&gt; threshold          -&gt; writer

Take a typical example of your images and open it up in ParaView
(or your viewer of choice).

You&#39;ll probably find that the intensity profile through the
object you&#39;re interested in is bumpy :
                                                 oo
                              oooooo   oo    oo
        o          oo                  oo           o         o
oooo ooo oo    ooo                             ooooo oooo

adjust the parameters of the smoothing filter until the profile
looks as much like this as possible:

                                ooooooooooooo
                              o                          o
ooooooooooooooo                              ooooooooo


adjust the parameters of the gradient magnitude filter until it
looks like this :
                              o                            o
                            o  o                        o  o
oooooooooooooo      ooooooooooo      oooooooo


sigmoid :

ooooooooooooooo oooooooooooooo oooooooooo

                              o                            o

fast :

                              o                            o
                                 o                       o
                                   o                   o
                                     o               o
                                        o          o
                                           o     o
                                              oo

the point is LOOK at the intermediate images.</pre>
      </span><br>
      </div>
    </blockquote>
I am now totally confusing. I am not understanding which is good
methods for segmentation because decision of various parameter is
critical.<br>
I tried for threshold level set segmentation, geodesic active contour
for tumor boundary detection but i failed every time. Please explain
briefly how to choose exact parameter for above methods.<br>
I have attached image in which i want to segment middle bright region.<br>
    </div>
  </blockquote>
  </div>
  <br>
  <br>
  </div>
</blockquote>
Dear Sir,<br></div></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from itk guide pdf i got some information about how to
choose exact alpha and beta value but it is not clearly understanding.
It is as follow,<br>
<br>
The Sigmoid Image Filter class requires two parameters to define the
linear transformation to<br>
be applied to the sigmoid argument. These parameters are passed using
the Set Alpha() and<br>
Set Beta() methods. In the context of this example, the parameters are
used to intensify the<br>
differences between regions of low and high values in the speed image.
In an ideal case, the<br>
speed value should be 1.0 in the homogeneous regions of anatomical
structures and the value<br>
should decay rapidly to 0.0 around the edges of structures. The
heuristic for finding the values<br>
is the following. From the gradient magnitude image, let&rsquo;s call K1 the
minimum value along<br>
the contour of the anatomical structure to be segmented. Then, let&rsquo;s
call K2 an average value of<br>
the gradient magnitude in the middle of the structure. These two values
indicate the dynamic<br>
range that we want to map to the interval [0 : 1] in the speed image.
We want the sigmoid to map<br>
K1 to 0.0 and K2 to 1.0. Given that K1 is expected to be higher than K2
and we want to map<br>
those values to 0.0 and 1.0 respectively, we want to select a negative
value for alpha so that the<br>
sigmoid function will also do an inverse intensity mapping. This
mapping will produce a speed<br>
image such that the level set will march rapidly on the homogeneous
region and will definitely<br>
stop on the contour. The suggested value for beta is (K1+K2)/2 while
the suggested value for<br>
alpha is (K2&minus;K1)/6, which must be a negative number. In our simple
example the values are<br>
provided by the user from the command line arguments. The user can
estimate these values by<br>
observing the gradient magnitude image. <br>
<br>
Again my doubt is how to find value of k1 and k2 from gradient image?<br>
actually i have not understood the meaning of k1 and k2 value. Please
explain me.<br>
<br>
<br>
Regards,<br>
Amit.</div></blockquote></div>
</div></div>