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 #ifndef SINFO_UTILITIES_H
00028 #define SINFO_UTILITIES_H
00029
00030 #ifdef HAVE_CONFIG_H
00031 # include <config.h>
00032 #endif
00033 #include <sinfo_cpl_size.h>
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084 #define sinfo_skip_if(CONDITION) \
00085 do if (CONDITION) { \
00086 if (cpl_error_get_code()) { \
00087 cpl_msg_debug("", "Skip in %s line %d due to '%s' with error '%s' " \
00088 "at %s", __FILE__, __LINE__, #CONDITION, \
00089 cpl_error_get_message(), cpl_error_get_where()); \
00090 if (strstr(cpl_error_get_where(), "visir") == NULL) \
00091 cpl_error_set_where(""); \
00092 } else { \
00093 cpl_msg_debug("", "Skip in %s line %d due to '%s'", \
00094 __FILE__, __LINE__, #CONDITION); \
00095 cpl_error_set("", CPL_ERROR_UNSPECIFIED); \
00096 } \
00097 goto cleanup; \
00098 } else { \
00099 if (cpl_error_get_code()) \
00100 cpl_msg_debug("", "No skip in %s line %d due to '%s' with error '%s' " \
00101 "at %s", __FILE__, __LINE__, #CONDITION, \
00102 cpl_error_get_message(), cpl_error_get_where()); \
00103 else \
00104 cpl_msg_debug("", "No skip in %s line %d due to '%s'", \
00105 __FILE__, __LINE__, #CONDITION); \
00106 } while (0)
00107
00108
00109 #define sinfo_end_skip \
00110 do { \
00111 cleanup: \
00112 if (cpl_error_get_code()) \
00113 cpl_msg_debug("", "Cleanup in %s line %d with error '%s' at %s", \
00114 __FILE__, __LINE__, \
00115 cpl_error_get_message(), cpl_error_get_where()); \
00116 else \
00117 cpl_msg_debug("", "Cleanup in %s line %d", \
00118 __FILE__, __LINE__); \
00119 } while (0)
00120
00121
00122 #include <cpl.h>
00123 #include <sinfo_image_ops.h>
00124 #include "sinfo_globals.h"
00125 CPL_BEGIN_DECLS
00126
00127
00128 cpl_image*
00129 sinfo_vector_to_image(const cpl_vector* vector,cpl_type type);
00130
00131 int
00132 sinfo_table_column_dump(cpl_table* t, const char* name, cpl_type type);
00133
00134 cpl_table*
00135 sinfo_table_shift_column_spline3(cpl_table* t,
00136 const char* col,
00137 const double s);
00138
00139 cpl_table*
00140 sinfo_table_shift_column_poly(cpl_table* t,
00141 const char* col,
00142 const double s,
00143 const int order);
00144
00145 cpl_table*
00146 sinfo_table_shift_column_int(const cpl_table* t,
00147 const char* col,
00148 const double s,
00149 double* r);
00150
00151 cpl_error_code
00152 sinfo_ima_line_cor(cpl_parameterlist * parlist, cpl_frameset* in);
00153
00154
00155 void sinfo_new_array_set_value( float * array, float value, int i );
00156 float sinfo_new_array_get_value( float * array, int i );
00157 void sinfo_new_destroy_array(float ** array);
00158 void sinfo_new_destroy_stringarray(char ** array, int size_x);
00159 void sinfo_new_intarray_set_value( int * array, int value, int i );
00160 void sinfo_new_array2D_set_value( float ** array, float value, int x, int y );
00161 void sinfo_new_destroy_2Dintarray(int *** array, int size_x);
00162 void sinfo_new_destroy_2Dfloatarray(float *** array, int size_x);
00163 void sinfo_new_destroy_2Ddoublearray(double *** array, int size_x);
00164 void sinfo_new_destroy_intarray(int ** array);
00165 void sinfo_new_destroy_doublearray(double * array);
00166 void sinfo_new_doublearray_set_value( double * array, double value, int i );
00167 int sinfo_new_intarray_get_value( int * array, int i );
00168 int * sinfo_new_intarray( int size);
00169 int ** sinfo_new_2Dintarray( int size_x, int size_y);
00170 double ** sinfo_new_2Ddoublearray( int size_x, int size_y);
00171 char * sinfo_new_get_rootname(const char * filename);
00172 char * sinfo_new_get_basename(const char *filename);
00173 float sinfo_new_Stats_get_cleanstdev(Stats * stats);
00174 float sinfo_new_Stats_get_cleanmean(Stats * stats);
00175 float sinfo_new_array2D_get_value( float ** array, int x, int y );
00176 float * sinfo_new_floatarray( int size);
00177 float ** sinfo_new_2Dfloatarray( int size_x, int size_y);
00178 double sinfo_new_doublearray_get_value( double * array, int i );
00179
00180 double * sinfo_new_doublearray( int size);
00181
00182
00183
00184 cpl_imagelist * sinfo_new_frameset_to_iset(cpl_frameset *) ;
00185 cpl_imagelist *
00186 sinfo_new_imagelist_load_frameset(const cpl_frameset * frameset,cpl_type type,
00187 int pnum,int extnum);
00188
00189 char ** sinfo_new_frameset_to_filenames(cpl_frameset *set, int *nfiles);
00190 char ** new_frameset_to_tags(cpl_frameset *set, int *ntags);
00191 double sinfo_spline_hermite(double xp,
00192 const double *x,
00193 const double *y,
00194 int n,
00195 int *istart );
00196
00197 cpl_error_code update_bad_pixel_map(cpl_image* im);
00198
00199 cpl_polynomial * sinfo_polynomial_fit_2d_create(cpl_bivector * xy_pos,
00200 cpl_vector * values,
00201 cpl_size degree,
00202 double * mse);
00203 cpl_polynomial * sinfo_polynomial_fit_1d_create(
00204 const cpl_vector * x_pos,
00205 const cpl_vector * values,
00206 int degree,
00207 double * mse
00208 );
00209 cpl_image * sinfo_image_filter_median(const cpl_image *, const cpl_matrix *);
00210 cpl_image * sinfo_image_filter_linear(const cpl_image *, const cpl_matrix *);
00211 cpl_image * sinfo_image_filter_linear2(const cpl_image *, const cpl_matrix *);
00212 CPL_END_DECLS
00213
00214 #endif