ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/pfilt.h
Revision: 2.3
Committed: Fri Dec 8 17:56:26 2023 UTC (5 months, 3 weeks ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 2.2: +9 -9 lines
Log Message:
feat(pfilt): Added support for hyperspectral image filtering

File Contents

# User Rev Content
1 greg 2.3 /* RCSid: $Id: pfilt.h,v 2.2 2023/12/07 21:15:54 greg Exp $ */
2 schorsch 2.1 /*
3     * Header file for picture filtering
4     */
5     #ifndef _RAD_PFILT_H_
6     #define _RAD_PFILT_H_
7    
8 greg 2.2 #include "standard.h"
9     #include "color.h"
10    
11 schorsch 2.1 #ifdef __cplusplus
12     extern "C" {
13     #endif
14    
15     extern double CHECKRAD; /* radius over which gaussian is summed */
16     extern double rad; /* output pixel radius for filtering */
17     extern double thresh; /* maximum contribution for subpixel */
18     extern int nrows, ncols; /* number of rows and columns for output */
19     extern int xres, yres; /* x and y resolution */
20     extern int avghot; /* true means average in avgbrt spots */
21     extern double hotlvl; /* brightness considered "hot" */
22     extern int npts; /* # of points for stars */
23     extern double spread; /* spread for star points */
24     extern char *progname;
25     extern COLOR exposure; /* exposure for frame */
26    
27     extern double x_c, y_r; /* conversion factors */
28    
29     extern int xrad; /* x search radius */
30     extern int yrad; /* y search radius */
31     extern int xbrad; /* x box size */
32     extern int ybrad; /* y box size */
33    
34     extern int barsize; /* size of input scan bar */
35 greg 2.3 extern COLORV **scanin; /* input scan bar */
36     extern COLORV *scanout; /* output scan line */
37     extern COLORV **scoutbar; /* output scan bar (if thresh > 0) */
38 schorsch 2.1 extern float **greybar; /* grey-averaged input values */
39     extern int obarsize; /* size of output scan bar */
40     extern int orad; /* output window radius */
41    
42     extern int wrapfilt; /* wrap filter horizontally? */
43    
44 greg 2.3 typedef double brightfunc_t(SCOLOR c);
45 schorsch 2.1 extern brightfunc_t *ourbright; /* brightness calculation function */
46    
47     /* defined in pf2.c */
48     extern void pass1init(void); /* prepare for first pass */
49     extern void pass1default(void); /* for single pass */
50 greg 2.3 extern void pass1scan(COLORV *scan, int y); /* process first pass scanline */
51 schorsch 2.1 extern void pass2init(void); /* prepare for final pass */
52 greg 2.3 extern void pass2scan(COLORV *scan, int y); /* process final pass scanline */
53 schorsch 2.1
54     /* defined in pf3.c */
55     extern void initmask(void); /* initialize gaussian lookup table */
56 greg 2.3 extern void dobox(SCOLOR csum, int xcent, int ycent,
57 schorsch 2.1 int c, int r); /* simple box filter */
58 greg 2.3 extern void dogauss(SCOLOR csum, int xcent, int ycent,
59 schorsch 2.1 int c, int r); /* gaussian filter */
60     extern void dothresh(int xcent, int ycent,
61     int ccent, int rcent); /* gaussian threshold filter */
62    
63     #ifdef __cplusplus
64     }
65     #endif
66     #endif /* _RAD_PFILT_H_ */