home *** CD-ROM | disk | FTP | other *** search
/ Practical Algorithms for Image Analysis / Practical Algorithms for Image Analysis.iso / TARFILE.GZ / tarfile / ch_3.5 / bcd / find_edg.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-11  |  1.1 KB  |  47 lines

  1. /*
  2.  * This program is used with permission from I. Cox.
  3.  * Please reference:
  4.  * R. A. Boie, I. Cox, Proc. IEEE 1st Int. Conf. Computer Vision,
  5.  * London, 1987, pp. 450-456.
  6.  */
  7. #include <stdio.h>
  8. #include <math.h>
  9. #include "edge_finder.h"
  10.  
  11. extern struct image *my_image;
  12.  
  13. unsigned char *
  14. image_find_edges (float sigma, int *threshold)
  15. {
  16.   unsigned char *image_edges ();
  17.  
  18.   fprintf (stderr, "\ngenerating filter sigma = %.1f", sigma);
  19.   generate_filter (sigma);
  20.   fprintf (stderr, " ( length = %d)\n", my_image->nf);
  21.  
  22.   fprintf (stderr, "\nconvolving image\n");
  23.   image_convolve (my_image->an_image);
  24.  
  25.   fprintf (stderr, "\ngenerating detx\n");
  26.   image_detx ();
  27.  
  28.   fprintf (stderr, "\ngenerating dety\n");
  29.   image_dety ();
  30.  
  31.   fprintf (stderr, "\ngenerating det45\n");
  32.   image_det45 ();
  33.  
  34.   fprintf (stderr, "\ngenerating det135\n");
  35.   image_det135 ();
  36.  
  37.   if (*threshold == 0) {
  38.     fprintf (stderr, "\nestimating threshold\n");
  39.     *threshold = image_threshold ();
  40.   }
  41.   fprintf (stderr, "\ngenerating edge_map (threshold = %d)\n",
  42.            *threshold);
  43.   my_image->edge_map = image_edges (*threshold);
  44.  
  45.   return (my_image->edge_map);
  46. }
  47.