home *** CD-ROM | disk | FTP | other *** search
/ swCHIP 1991 January / swCHIP_95-1.bin / demo / wit4711 / lib / help / segment / localthr. / localthr.bin
Text File  |  1995-12-09  |  3KB  |  70 lines

  1. OPERATOR
  2.  
  3. localThresh --- perform Poon's local thresholding
  4.  
  5.  
  6. DESCRIPTION
  7.  
  8. The localThresh operator performs local thresholding for segmenting objects from 
  9. a greyscale image using Poon's method. The top input port is connected to an 
  10. 8-bit input image and the bottom input port is connected to a set of seed 
  11. points from which region growing is to start. The seed input may be either 
  12. a binary image where the seed is a non-zero pixel value or a getData vector 
  13. of points where each seed is an (x,y) location. The algorithm goes through 
  14. the list of seeds, one by one, and attempts to grow the seed region by 
  15. examining the seed's 8 neighbours recursively. A neighbour is region grown if 
  16. its pixel value satisfies a threshold. The threshold is determined by the 
  17. parameters peakFraction and minContrast . The idea here is to grow seed values 
  18. into a region with pixels greater than a certain percentage of the seed 
  19. pixel value. The minContrast constraint is involved to ensure the result of 
  20. multiplying the seed value by the peakFraction to obtain a threshold will not 
  21. go below/above a minimum noise level. Each seed therefore is grown as 
  22. follows: 
  23.     begin seed(x)
  24.        set threshold = seed pixel value * peakFraction/100.0
  25.        if(minContrast < 0) then
  26.          if threshold > minContrast 
  27.             then threshold = minContrast
  28.          endif
  29.          if seed pixel value < threshold 
  30.             then region_grow_lt(x)
  31.          endif
  32.        else
  33.          if threshold < minContrast
  34.             then threshold = minContrast
  35.          endif
  36.          if seed pixel value > threshold
  37.             then region_grow_gt(x)
  38.          endif
  39.        endif
  40.     end seed
  41.  
  42.  
  43.  
  44.     begin region_grow_gt(x)
  45.        for each neighbour n
  46.        if n > threshold 
  47.           then region_grow_gt(n)
  48.     end region_grow_gt
  49.  
  50.  
  51.  
  52.     begin region_grow_lt(x)
  53.        for each neighbour n
  54.        if n < threshold 
  55.           then region_grow_lt(n)
  56.     end region_grow_lt
  57. 
  58.  
  59. Note how the sign of minContrast determines whether a region is considered 
  60. above or below a threshold. This technique for thresholding objects from a 
  61. scene is ideal if the scene's background is not uniform. In other words each 
  62. object to be segmented has a different background level. Global thresholding 
  63. would either isolate too few objects or too much of the scene as a result 
  64. of variation in the scene background. 
  65.  
  66. This operator is often used after high-pass filtering an image, where there 
  67. is a definite base level with which to measure contrast. The seed points can 
  68. be generated by performing an edge detection followed by zero crossing 
  69. detection, and then using the zero crossing points as seeds. 
  70.