³æ¤¸4. Segmentation II : Region Growing

1. Region-based segmentation:

¦pªGRªí¥Ü¤@±i¼v¹³ªº¥þ³¡½d³ò¡A¼v¹³¤Á³Îªº¥Øªº¬O±NR¤Á³Î¦¨n­Ó°Ï¶ô¡GR1,R2,¡K,Rn ¨Ãº¡¨¬¤U¦C±ø¥ó¡G

Seeded Region growing¡G

¿ï¨ú¤@§åºØ¤l(seed)pixels¡A¥Hseed¬°®Ö¤ß¶i¦æ¦¨ªø(grow)¡A§PÂ_seed©P³òpixels¬O§_»Pseed¨ã¦³¬Û¦üªº¯S©Ê(¦Ç¶¥­È¡B¸`²z¡B¦â±m) ¡A¦pªG¬O¡A«h±µ¨ü¸Ópixel¬°¦P¤@region¡A¦A¥H¦¹·sªºpixel¬°®Ö¤ß¡AÄ~Äò°»¬d©P³ò©|¥¼³QÂkÃþ¨ì¥ô¤@regionªºpixel¡Aª½¨ì¼v¹³©Ò¦³pixels³£¤ÀÃþ§¹¦¨¡C

 

Following Adams and Bischof, we say that the seeds are grouped into n sets, A1; A2; . . .; An. Each step of the algorithm adds a single pixel to one of these sets. To achieve this and maintain a homogeneity criterion, the set T of all as-yet unallocated pixels bordering at least one region is employed

where N(x) is the nearest eight neighbors of the pixel x. If for xT we have that N(x) meets just one of the Ai, then the index i(x) {1; 2; . . .; n} is defined such that .We define d(x) to be a measure of how different x is from the region it adjoins. The simplest definition for d(x) is

where g(x) is the gray-scale intensity value of x. If N(x) meets two or more of the Ai, the value i(x) is taken to be the value of i such that N(x) meets Ai and  d(x) is minimized. A zT is then taken such that

and append z to Ai(z). This completes a single step of the algorithm and the same process is iterated until all pixels have been allocated to a set.

 

The implementation of SRG employs a linked list storing the data of T , which is ordered according to d(x) . Adams and Bischof refer to this as a sequentially sorted list (SSL). The SSL remains ordered throughout the progression of the algorithm, so that by simply processing the first entry at each time step, d(x) is satisfied. Thus, a search cost must be incurred to locate appropriate positions when adding new members to the SSL.

ºtºâªk¡G

Initialization:
®Ú¾Ú°_©l¤À¸s¼Ð¥Ü(labeling)¨C¤@­Óseed©ÒÄÝregion¡A§â¨C¤@­Óseed¾FªñÂI©ñ¤JSSL(sequentially sorted list)¡C
Region Growing:
While SSL
¤£¬OªÅªº do
    
±qSSL²¾°£²Ä¤@­Ópixel y.
    
´ú¸Õyªº¾FªñÂI:
          if
©Ò¦³yªº¾FªñÂI³£¤w¼Ð¥Ü¬°¬Û¦Pregionªºlabel A then
            
¼Ð¥Üy¬°region A¡F
            
§ó·sregion Aªº¥­§¡­Èmean¡F
            
¾Ü¥Xyªº¾FªñÂI¤¤¤£¦bSSLªºpixel¡A­pºâ¸ÓÂI¦Ç¶¥­È»Pregion Aªº¥­§¡¦Ç¶¥­È(mean)ªº®t¶Z
               

          else
               
¼Ð¥Üy¬°Ãä¬ÉÂIlabel¡C

¤@­Ó²¤Æªººtºâªkª©¥»¡G

// main function

      ......
      /* Initialize region statistics */
      Total = Count = 0;
      for (y = Yseed - 5; y <= Yseed + 5; y++)
         for (x = Xseed - 5; x <= Xseed + 5; x++)
            if ((x >= 0) && (y >= 0) && (x < nc-1) && (y < nr-1))
            {
               Count++;
               Total += ima1.m[y][x];
            }
      /* Perform recursive seeded region growing */
      RegionGrow(ima1, ima2, Xseed, Yseed);
      cout<<"region contain "<<Count<<" points with mean value = "<<Total/Count;
      ......

 

// RegionGrow function

void RegionGrow(uc2D &ima1, uc2D &ima2, int x, int y)
{
   float Diff, Mean;
 
   /* Check to see if point already part of region */
   if (ima2.m[y][x] == 0)
   {
      /* See if point is close enough to add */
      Mean = Total / Count;
      Diff = ima1.m[y][x] - Mean;
      if (Diff < 0) Diff = -Diff;
      if (Diff < Threshold)
      {
         /* Add point to region and consider neighbors */
         Total += ima1.m[y][x];
         Count++;
         ima2.m[y][x] = 1;
         if (x > 0) RegionGrow(x - 1, y);
         if (y > 0) RegionGrow(x, y - 1);
         if (x < Xdim - 2) RegionGrow(x + 1, y);
         if (y < Ydim - 2) RegionGrow(x, y + 1);
      }
   }
}
 
Region Growing¥Ü·N¹Ï

°ÝÃD¡G

l         Seed-dependent : ¿ï¾Ü¤£¦Pseed±N·|¦³¤£¦Pªº¼v¹³¤Á³Îµ²ªG¡F.

l         ¦pªGseed­è¦n¦ì©óedge±NµLªk¶i¦æ¼v¹³¤Á³Î

 

¨â½g­«­n°Ñ¦Ò¤åÄm¡G

  1. Rolf Adams, Leanne Bischof, "Seeded region growing", IEEE Trans. on PAMI, Vol. 16, No. 6, June 1994, pp. 641 -647
  2. Andrew Mehnert, Paul Jackway, "An improved seeded region growing algorithm", Pattern Recognition Letters, Vol. 18, 1997, pp. 1065-1071

¨ä¥¦³Ì·s°Ñ¦Ò¤åÄm¡G

Robert D. Stewart, Iris Fermin, and Manfred Opper . Region growing with pulse-coupled neural networks, IEEE TRANSACTIONS ON NEURAL NETWORKS, VOL. 13, NO. 6, NOVEMBER 2002