00001 #include "trees.h"
00002
00003 #define HIST_BLOCK_DIM 64
00004 #define HIST_RESOL 256
00005 #define MAG_PERCENTILE (double)(0.25)
00006 #define LOCAL_DEVN 25
00007
00008 #define DIR_TOL 25
00009
00010 #define SEARCH_TOL 10
00011
00012 typedef struct {
00013 int edge;
00014 int bin;
00015 int cbin;
00016 int numpixels;
00017 int mag[HIST_RESOL];
00018 int dir[HIST_RESOL];
00019 double r;
00020 int per;
00021 } HISTOGRAM;
00022
00023
00024
00025 extern void HIST_INIT (HISTOGRAM *);
00026 extern void HIST_MAG (IMAGE_BYTE *, MOSAIC_INDEX *, HISTOGRAM *, HISTOGRAM **, int, int);
00027 extern void HIST_RTH_PERCENTILE (HISTOGRAM *, HISTOGRAM **, double, int, int);
00028 extern void HIST_DIR (IMAGE_BYTE *, IMAGE_BYTE *, MOSAIC_INDEX *, HISTOGRAM *, HISTOGRAM **, int, int);
00029 extern void HIST_ORIENTATION (HISTOGRAM *, HISTOGRAM **, int, int);
00030 extern int HIST_DIR_OF_EDGE_NEIGHBOUR (HISTOGRAM *, HISTOGRAM **, int, int, int, int);
00031 extern void HIST_RESOLVE (HISTOGRAM *, HISTOGRAM **, int, int);
00032 extern int HIST_NUM_RING_NEIGH(IMAGE_BYTE *, MOSAIC_INDEX *, int, int, int);
00033 extern void HIST_SUPPRESS (IMAGE_BYTE *, IMAGE_BYTE *, MOSAIC_INDEX *, HISTOGRAM **);
00034 extern int HIST_FIND_MAX_NEIGH (IMAGE_BYTE *, IMAGE_BYTE *, MOSAIC_INDEX *, int, int, int *, int *);
00035 extern int HIST_NUM_NEIGH (IMAGE_BYTE *, MOSAIC_INDEX *, int, int);
00036 extern void MOSAIC_BYTE_SUPPRESS (IMAGE_BYTE *, MOSAIC_INDEX *, IMAGE_BYTE *, IMAGE_BYTE *, HISTOGRAM *, HISTOGRAM ***);