Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 4a71d9984febeb5a206904a5a379841a > files > 616

python-morph-0.8-7mdv2010.0.noarch.rpm

<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
    <title>mmdcells</title>
    <link href="../tbxdok.css" rel="stylesheet">
  </head>
  <body>
    <table class="topNav">
      <tr>
        <td class="index">
                  [<a href="../mmdemos/mmdcalc.html"><tt>mmdcalc</tt></a>]
              
                  [<a href="index.html">Up</a>]
                  
                  [<a href="../mmdemos/mmdchickparts.html"><tt>mmdchickparts</tt></a>]
              </td>
        <td class="title">Demonstrations</td>
      </tr>
    </table>
    <h1>mmdcells
      <br>
      <span class="subtitle">Extract blood cells and separate them.
</span>
    </h1>
    <div class="descr">
      <H2>Description</H2>
      <div class="H2">
        <p>
                      A microscopic gray-scale image containing blood cells is segmented and further processed for the separation of superposed cells. The segmentation procedure is based on gray-scale connected filtering and threshold, while the separation procedure is based on the classical watershed approach.
                  
        </p>
      </div>
    </div>
    <div class="script">
      <H2>Demo Script</H2>
      <div class="H2">
        <div class="slide">
          <H3>Reading and elimination of white pores</H3>
          <div class="H3">
            <p>
              <p>
                        First, the blood cells image is read. Then,  the gray-scale area open operator is applied for removing small white pores over the cells.
                    
              </p>
              <div class="example">
                <div class="listing">
                  <pre class="user">&gt;&gt;&gt; a = mmreadgray('bloodcells.tif');</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(a);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; b = mmareaopen(a, 200);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(b);</pre>
                  <pre class="computer"></pre>
                </div>
                <table class="images">
                  <tbody align="center">
                    <tr class="image" valign="bottom">
                      <td><img width="256" src="../images/img_mmdcells_001.jpg"></td>
                      <td><img width="256" src="../images/img_mmdcells_002.jpg"></td>
                      <td class="spare"></td>
                    </tr>
                    <tr class="title" valign="baseline">
                      <td><a href="../images/img_mmdcells_001.jpg">a</a></td>
                      <td><a href="../images/img_mmdcells_002.jpg">b</a></td>
                      <td class="spare"></td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </p>
          </div>
        </div>
        <div class="slide">
          <H3>Threshold and shape smoothing</H3>
          <div class="H3">
            <p>
              <p>
                        The threshold of dark areas produces the segmented image (i.e., the region where there are cells). Then the opening by a small disk performs smoothing of the cells borders.
                    
              </p>
              <div class="example">
                <div class="listing">
                  <pre class="user">&gt;&gt;&gt; c = mmcmp( uint8(0), '&lt;=', b, '&lt;=', uint8(140));</pre>
                  <pre class="computer">Warning: Converting input image from int32 to uint16.
Warning: Converting input image from int32 to uint16.</pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(c);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; d = mmopen(c,mmsedisk(2,'2D','OCTAGON'));</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(d);</pre>
                  <pre class="computer"></pre>
                </div>
                <table class="images">
                  <tbody align="center">
                    <tr class="image" valign="bottom">
                      <td><img width="256" src="../images/img_mmdcells_003.jpg"></td>
                      <td><img width="256" src="../images/img_mmdcells_004.jpg"></td>
                      <td class="spare"></td>
                    </tr>
                    <tr class="title" valign="baseline">
                      <td><a href="../images/img_mmdcells_003.jpg">c</a></td>
                      <td><a href="../images/img_mmdcells_004.jpg">d</a></td>
                      <td class="spare"></td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </p>
          </div>
        </div>
        <div class="slide">
          <H3>Marking</H3>
          <div class="H3">
            <p>
              <p>
                        A marker for each cell is obtained by dilating the regional maximum of the distance transform. For visualization illustration, the distance transform is viewed as a topographic surface shading on the left and the dilated regional maximum is displayed in read overlayed on the surface view.
                    
              </p>
              <div class="example">
                <div class="listing">
                  <pre class="user">&gt;&gt;&gt; e1 = mmdist(d, mmsebox(),'EUCLIDEAN');</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; e2 = mmsurf(e1);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow( e2);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; e3 = mmregmax(e1);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; e  = mmdil(e3);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow( e2, e);</pre>
                  <pre class="computer"></pre>
                </div>
                <table class="images">
                  <tbody align="center">
                    <tr class="image" valign="bottom">
                      <td><img width="256" src="../images/img_mmdcells_005.jpg"></td>
                      <td><img width="256" src="../images/img_mmdcells_006.jpg"></td>
                      <td class="spare"></td>
                    </tr>
                    <tr class="title" valign="baseline">
                      <td><a href="../images/img_mmdcells_005.jpg">e2</a></td>
                      <td><a href="../images/img_mmdcells_006.jpg">e2, e</a></td>
                      <td class="spare"></td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </p>
          </div>
        </div>
        <div class="slide">
          <H3>Geodesic SKIZ</H3>
          <div class="H3">
            <p>
              <p>
                        The watershed, constrained by the makers image, is applied to the negation of the distance function. The result of this procedure is also called geodesic SKIZ. For visualization, on the left the negate distance function is displayed as a topographic surface, and on the right this surface is superposed by the markers and the detected watershed lines.
                    
              </p>
              <div class="example">
                <div class="listing">
                  <pre class="user">&gt;&gt;&gt; f = mmneg(e1);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; fs = mmsurf(f);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(fs);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; g = mmcwatershed( f, e, mmsebox());</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(fs, g, e);</pre>
                  <pre class="computer"></pre>
                </div>
                <table class="images">
                  <tbody align="center">
                    <tr class="image" valign="bottom">
                      <td><img width="256" src="../images/img_mmdcells_007.jpg"></td>
                      <td><img width="256" src="../images/img_mmdcells_008.jpg"></td>
                      <td class="spare"></td>
                    </tr>
                    <tr class="title" valign="baseline">
                      <td><a href="../images/img_mmdcells_007.jpg">fs</a></td>
                      <td><a href="../images/img_mmdcells_008.jpg">fs, g, e</a></td>
                      <td class="spare"></td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </p>
          </div>
        </div>
        <div class="slide">
          <H3>Cell separation</H3>
          <div class="H3">
            <p>
              <p>
                        The geodesic SKIZ (i.e., watershed division lines) is subtracted from the segmented image, separating the cells. On the left the detected watershed lines is overlayed on the cells binary image, and on the right, the cells image separated using the watershed lines.
                    
              </p>
              <div class="example">
                <div class="listing">
                  <pre class="user">&gt;&gt;&gt; mmshow(c,g);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; h = mmintersec(c,mmneg(g));</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(h);</pre>
                  <pre class="computer"></pre>
                </div>
                <table class="images">
                  <tbody align="center">
                    <tr class="image" valign="bottom">
                      <td><img width="256" src="../images/img_mmdcells_009.jpg"></td>
                      <td><img width="256" src="../images/img_mmdcells_010.jpg"></td>
                      <td class="spare"></td>
                    </tr>
                    <tr class="title" valign="baseline">
                      <td><a href="../images/img_mmdcells_009.jpg">c,g</a></td>
                      <td><a href="../images/img_mmdcells_010.jpg">h</a></td>
                      <td class="spare"></td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </p>
          </div>
        </div>
        <div class="slide">
          <H3>Edge off</H3>
          <div class="H3">
            <p>
              <p>
                        The cells that touch the frame of the image are removed.
                    
              </p>
              <div class="example">
                <div class="listing">
                  <pre class="user">&gt;&gt;&gt; i = mmedgeoff(h);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(i);</pre>
                  <pre class="computer"></pre>
                </div>
                <table class="images">
                  <tbody align="center">
                    <tr class="image" valign="bottom">
                      <td><img width="256" src="../images/img_mmdcells_011.jpg"></td>
                      <td class="spare"></td>
                    </tr>
                    <tr class="title" valign="baseline">
                      <td><a href="../images/img_mmdcells_011.jpg">i</a></td>
                      <td class="spare"></td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </p>
          </div>
        </div>
        <div class="slide">
          <H3>Final display</H3>
          <div class="H3">
            <p>
              <p>
                        Superposition of the contour of the detected cells on the original image.
                    
              </p>
              <div class="example">
                <div class="listing">
                  <pre class="user">&gt;&gt;&gt; j=mmgradm(i);</pre>
                  <pre class="computer"></pre>
                  <pre class="user">&gt;&gt;&gt; mmshow(a,j);</pre>
                  <pre class="computer"></pre>
                </div>
                <table class="images">
                  <tbody align="center">
                    <tr class="image" valign="bottom">
                      <td><img width="256" src="../images/img_mmdcells_012.jpg"></td>
                      <td class="spare"></td>
                    </tr>
                    <tr class="title" valign="baseline">
                      <td><a href="../images/img_mmdcells_012.jpg">a,j</a></td>
                      <td class="spare"></td>
                    </tr>
                  </tbody>
                </table>
              </div>
            </p>
          </div>
        </div>
      </div>
    </div>
    <center>
      <table class="botNav">
        <tr>
          <td class="index">
                    [<a href="../mmdemos/mmdcalc.html"><tt>mmdcalc</tt></a>]
                
                    [<a href="index.html">Up</a>]
                    
                    [<a href="../mmdemos/mmdchickparts.html"><tt>mmdchickparts</tt></a>]
                </td>
          <td rowspan="2" class="xhtml"><a href="http://www.python.org"><img width="55" alt="Python" height="22" src="../PythonPoweredSmall.gif"></a></td>
        </tr>
        <tr>
          <td class="copyright">Copyright (c) 2003, Roberto A. Lotufo, UNICAMP-University of Campinas; Rubens C. Machado, CenPRA-Renato Archer Research Center.</td>
        </tr>
      </table>
    </center>
  </body>
</html>