00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef FORS_IMAGE_H
00029 #define FORS_IMAGE_H
00030
00031 #include <fors_setting.h>
00032 #include <cpl.h>
00033
00034 typedef struct _fors_image fors_image;
00035
00036 extern const cpl_type FORS_IMAGE_TYPE;
00037
00038
00039 #undef LIST_ELEM
00040 #define LIST_ELEM fors_image
00041 #include <list.h>
00042
00043
00044 fors_image *fors_image_new(cpl_image *data, cpl_image *weights);
00045
00046 fors_image *fors_image_duplicate(const fors_image *image);
00047
00048
00049 void fors_image_delete(fors_image **image);
00050 void fors_image_delete_const(const fors_image **image);
00051
00052
00053
00054 fors_image *fors_image_load(const cpl_frame *frame, const fors_image *bias,
00055 const fors_setting *setting,
00056 double *saturated);
00057
00058
00059 fors_image_list *fors_image_load_list(const cpl_frameset *frames,
00060 const fors_image *bias,
00061 const fors_setting *setting,
00062 double *saturated);
00063
00064 const fors_image_list *
00065 fors_image_load_list_const(const cpl_frameset *frames, const fors_image *bias,
00066 const fors_setting *setting,
00067 double *saturated);
00068
00069 void
00070 fors_image_save(const fors_image *image, const cpl_propertylist *header,
00071 const char *filename);
00072
00073 void
00074 fors_image_save_sex(const fors_image *image, const cpl_propertylist *header,
00075 const char *filename_dat,
00076 const char *filename_var,
00077 int radius);
00078
00079
00080 int fors_image_get_size_x(const fors_image *image);
00081 int fors_image_get_size_y(const fors_image *image);
00082 const float *fors_image_get_data_const(const fors_image *image);
00083
00084 void fors_image_draw(fors_image *image, int type,
00085 double x, double y,
00086 int radius, double color);
00087
00088 void fors_image_crop(fors_image *image,
00089 int xlo, int ylo,
00090 int xhi, int yhi);
00091
00092
00093 void fors_image_subtract(fors_image *left, const fors_image *right);
00094 void fors_image_multiply(fors_image *left, const fors_image *right);
00095 void fors_image_multiply_noerr(fors_image *left, const cpl_image *right);
00096 void fors_image_divide(fors_image *left, const fors_image *right);
00097 void fors_image_divide_noerr(fors_image *left, cpl_image *right);
00098 void fors_image_abs(fors_image *image);
00099 void fors_image_square(fors_image *image);
00100
00101 void fors_image_exponential(fors_image *image, double b, double db);
00102 void fors_image_multiply_scalar(fors_image *image, double s, double ds);
00103 void fors_image_divide_scalar(fors_image *image, double s, double ds);
00104 void fors_image_subtract_scalar(fors_image *image, double s, double ds);
00105
00106 fors_image *fors_image_collapse_create(const fors_image_list *images);
00107 fors_image *fors_image_collapse_median_create(const fors_image_list *images);
00108 fors_image *fors_image_collapse_minmax_create(const fors_image_list *images,
00109 int low, int high);
00110
00111 cpl_image *
00112 fors_image_filter_median_create(const fors_image *image,
00113 int xradius,
00114 int yradius,
00115 int xstart,
00116 int ystart,
00117 int xend,
00118 int yend,
00119 int xstep,
00120 int ystep,
00121 bool use_data);
00122
00123 cpl_image *
00124 fors_image_flat_fit_create(fors_image *image,
00125 int step,
00126 int degree,
00127 float level);
00128 cpl_image *
00129 fors_image_filter_max_create(const fors_image *image,
00130 int xradius,
00131 int yradius,
00132 bool use_data);
00133
00134
00135 double fors_image_get_mean(const fors_image *image, double *dmean);
00136 double fors_image_get_median(const fors_image *image, double *dmedian);
00137
00138 double fors_image_get_stdev(const fors_image *image, double *dstdev);
00139 double fors_image_get_stdev_robust(const fors_image *image,
00140 double cut,
00141 double *dstdev);
00142 double fors_image_get_error_mean(const fors_image *image, double *dmean);
00143
00144 double fors_image_get_min(const fors_image *image);
00145 double fors_image_get_max(const fors_image *image);
00146
00147 #endif