OPERA  1.0
Open source echelle spectrograph reduction pipeline
operaFITStoPNG.h
Go to the documentation of this file.
00001 #ifndef OPERAFITSTOPNG_H
00002 #define OPERAFITSTOPNG_H
00003 /* prototypes */
00004 
00005 #define histDepth 256
00006 #define index(a,x,y,w) a[(x)+((y)*(w))]
00007 #define ELEM_SWAP(a,b) {register float t=(a);(a)=(b);(b)=t; }
00008 
00009 typedef struct {
00010         unsigned char r;
00011         unsigned char g;
00012         unsigned char b;
00013 } colour;
00014 
00015 enum outputkinds {
00016         E_JPG, E_PNG, E_MPG
00017 } outputkinds;
00018 
00019 static colour lingray(float val, float z1, float z2, char neg);
00020 static colour lingraycutcol(float val, float z1, float z2, char neg);
00021 static colour irafloggray(float val, float z1, float z2, char neg);
00022 static colour irafloggraycutcol(float val, float z1, float z2, char neg);
00023 static colour plinlog(float val, float z1, float z2, char neg);
00024 static colour logcontours(float val, float z1, float z2, char neg);
00025 static colour loghsv(float val, float z1, float z2, char neg);
00026 static colour lincol1(float val, float z1, float z2, char neg);
00027 static colour lingrayupena(float val, float z1, float z2, char neg);
00028 static colour lingrayupenalog(float val, float z1, float z2, char neg);
00029 
00030 static colour HSVtoRGB(float h, float s, float v);
00031 static colour rainbow(float x);
00032 
00033 static void GetMedian(const float *inarr, unsigned int n, float *a1, float *a2);
00034 static void GetMinAndMax(const float *inarr, unsigned int n, float *min, float *max);
00035 static float *shrink(const float *image, const int dimx, const int dimy, const int ratio, const float bias, float *smallimage);
00036 static void histogramEqualize(float *image, unsigned int width, unsigned int height, float min, float max);
00037         
00038 static void printUsageSyntax();
00039 
00040 #endif