Name
       findobjs  -  detection  and  stats of bright objects in an
       image

Synopsis
       findobjs [options]  <list of FITS files...>

Description
       findobjs detects and localizes bright objects in  a  given
       set  of  images. It takes in argument a list of FITS files
       and prints out for each input image a list of objects with
       their key statistics.

       findobjs  can  also  be used to produce binary maps of the
       detected signals, and labelized maps (each  detected  zone
       is affected a unique ID).

       findobjs supersedes detpeak, fwhm, photfits.

Algorithm
       The following steps are performed:
       1. smearing (optional)
       2. thresholding
       3. morphological closure (can be cancelled)
       4. labelization
       5. key gray-level statistics calculation
       5. fine-positioning (optional)
       6. photometry calculation (optional)

       Smearing can be applied to the initial image to spread out
       very localized peaks, to increase detectability.

       The second step is to threshold the  input  image  between
       background and signal. The method offered here is a kappa-
       sigma clipping with a threshold K (default  is  2.0).  The
       mean  of  the  image  is  actually estimated by the median
       pixel value, and the standard deviation  is  estimated  by
       the  absolute  average  distance to this median value. All
       pixels above M+SK are retained as "signal", the others are
       "background".

       Since  bad  pixels and other detector defects will also be
       found by this thresholding, an optional morphological clo-
       sure  (erosion+dilatation)  can  be performed to close all
       zones smaller than a structural  element.  The  structural
       element  is  a square 3x3 pixel zone. All objects strictly
       smaller than the structural element will disappear.

       A binary map of the zones found  by  this  thresholding  +
       optional  closure can be dumped to disk upon user request.

       Labelization is then applied to this binary map  to  iden-
       tify  each zone with a unique ID. An image of these labels
       can be dumped to disk upon user request.

       Next step is then to perform a series of statistical  mea-
       surements  on each zone. The following parameters are cal-
       culated:
       o A label ID.  Number 0 is the  background,  number  1  is
       reserved  for  all unclassified zones (not used). Thus the
       first object of interest is number 2 and henceforth.
       o Number of pixels in the zone
       o Min, max, average, standard deviation and  total  inten-
       sity of the zone
       o Barycenter of the zone (weighted by pixel values)
       o FWHM (if computable, -1.0=n/a)
       o fixed aperture photometry (optional).

       Barycenter computation can be optionally refined with fine
       positioning, but needs then three radius values  r1<r2<r3.
       (r2,r3)  specify  a ring around each detected object, from
       which an estimation  of  the  background  is  computed.  A
       barycenter  is  then  computed  in  the disk of radius r1,
       using background-subtracted pixel values as weights.  Fine
       positioning assumes that:
       -  All  peaks  are  isolated,  i.e.  the  closest distance
       between 2 peaks is strictly greater than  2*r3,  otherwise
       some  objects  would contaminate the background estimation
       for other objects.
       - There is a backround  zone  around  every  peak,  always
       within  the  disk  defined  by  (r2,r3),  which  is not an
       extended object but a true background.
       - All peaks are contained within a disk of radius r1.

       If the computed FWHM is perturbed (e.g.  blended  objects)
       or does not make sense, the value printed out is -1.

       Fixed  aperture  photometry  is also computed for peaks if
       three radii r1,r2,r3 are provided. Again, (r2,r3) define a
       crown  into  which  the  background is estimated, and r1 a
       disk into which the background-subtracted flux is  accumu-
       lated.  Same  assumptions  as  for  fine positioning apply
       here. The provided radii need not be the same as the  ones
       for fine positioning.

Options
       -s/--sigmacut
              sets  the  threshold  for kappa-sigma thresholding.
              The lower this value, the  more  bright  zones  are
              detected.  The higher this factor the less detected
              peaks. The default of 2.0 seems  to  work  fine  on
              images having a high Signal to Noise Ratio.

       -f `r1 r2 r3' or --finepos `r1 r2 r3'
              Use  fine  positioning. The user must provide three
              values r1 < r2 < r3.  The radii r2 and r3 specify a
              ring  around  each  detected  point,  from which an
              estimation  of  the  background  is   computed.   A
              barycenter  is  then computed in the disk of radius
              r1, using  background-subtracted  pixel  values  as
              weights. No defaults are given to these parameters.

       -p `r1 r2 r3' or --photo `r1 r2 r3'
              Compute photometry. The flux is computed as the sum
              of  all  pixel  values  found  within  the  r1 disk
              (including the border).  If a background  had  been
              estimated  per  pixel,  it  is then subtracted from
              each pixel before accumulation.  If  no  background
              computation is requested it is assumed having value
              0.

       -b     Estimate  background  for  photometry  computation.
              For  background  estimation, 2 methods are offered.
              In both cases, a list of all pixels found to be  in
              the  ring  is  first  constructed.   The difference
              between the average (default) and  the  median  (-m
              option) is the following:
              In  the  case  of  an average estimation, the back-
              ground is simply estimated  as  the  average  pixel
              value of the pixels found in the ring.
              In  the  case  of  the median estimation, the found
              pixel values are first sorted,  the  background  is
              then  estimated as an average of the 3 or 4 central
              values in the sorted array (whether the  number  of
              found  pixels  is  odd  or even). This method h.PPs
              getting rid of spurious pixel values that can occur
              in  the ring.  Note that in this case, a minimum of
              60 pixels has to be found to perform  a  background
              estimation.

       -m     See -b.

       -l or --smearing
              This  option (low-pass filter) applies a 5x5 convo-
              lution with a flat kernel before trying  to  detect
              objects.  The smearing is helpful to detect objects
              which are smaller than the structural element  used
              for  morphological  closing  (a  3x3  window).   It
              increases the number of detections,  but  also  the
              number  of false detections. Bad pixels for example
              are smeared out to a 5x5  window  and  detected  as
              proper  peaks.  Another issue is that 2 close peaks
              will be smeared out to a single one. Most  probably
              the  returned  result will be a barycenter of the 2
              regions instead of the 2 expected centers.  Because
              the  smearing will lower the signal in all regions,
              the default sigma cut is halved when this option is
              used.

       --no-erosion or -c
              cancels morphological closure.

       --output-binary or -i
              save  the binary map (whether it has been eroded or
              not). The output file has the basename of the input
              file suffixed with "_thr".

       --output-labeled or -o
              save the label image. The output file has the base-
              name of the input file suffixed with "_lab".

Files
       Input files must all comply with FITS format.

See Also
       detpeak, fwhm, photfits

Bugs
       Peaks located on an image edge will not be detected.

       FWHM results given in arcseconds not possible (not  imple-
       mented).

       The  fine  positioning  method makes assumptions about the
       signal, which may not be fulfilled in many cases.  Use  it
       with  caution,  especially  when determining the radii r1,
       r2,  and  r3  for  background  computation  and  weighting
       region.

       It  would  be nice to find an algorithm for automatic set-
       ting of the sigma  threshold,  instead  of  relying  on  a
       default value.