27 #ifndef SINFO_UTILITIES_H
28 #define SINFO_UTILITIES_H
33 #include <sinfo_cpl_size.h>
84 #define sinfo_skip_if(CONDITION) \
86 if (cpl_error_get_code()) { \
87 cpl_msg_debug("", "Skip in %s line %d due to '%s' with error '%s' " \
88 "at %s", __FILE__, __LINE__, #CONDITION, \
89 cpl_error_get_message(), cpl_error_get_where()); \
90 if (strstr(cpl_error_get_where(), "visir") == NULL) \
91 cpl_error_set_where(""); \
93 cpl_msg_debug("", "Skip in %s line %d due to '%s'", \
94 __FILE__, __LINE__, #CONDITION); \
95 cpl_error_set("", CPL_ERROR_UNSPECIFIED); \
99 if (cpl_error_get_code()) \
100 cpl_msg_debug("", "No skip in %s line %d due to '%s' with error '%s' " \
101 "at %s", __FILE__, __LINE__, #CONDITION, \
102 cpl_error_get_message(), cpl_error_get_where()); \
104 cpl_msg_debug("", "No skip in %s line %d due to '%s'", \
105 __FILE__, __LINE__, #CONDITION); \
109 #define sinfo_end_skip \
112 if (cpl_error_get_code()) \
113 cpl_msg_debug("", "Cleanup in %s line %d with error '%s' at %s", \
114 __FILE__, __LINE__, \
115 cpl_error_get_message(), cpl_error_get_where()); \
117 cpl_msg_debug("", "Cleanup in %s line %d", \
118 __FILE__, __LINE__); \
123 #include <sinfo_image_ops.h>
124 #include "sinfo_globals.h"
129 sinfo_vector_to_image(
const cpl_vector* vector,cpl_type type);
132 sinfo_table_column_dump(cpl_table* t,
const char* name, cpl_type type);
135 sinfo_table_shift_column_spline3(cpl_table* t,
140 sinfo_table_shift_column_poly(cpl_table* t,
146 sinfo_table_shift_column_int(
const cpl_table* t,
152 sinfo_ima_line_cor(cpl_parameterlist * parlist, cpl_frameset* in);
155 void sinfo_new_array_set_value(
float * array,
float value,
int i );
156 float sinfo_new_array_get_value(
float * array,
int i );
157 void sinfo_new_destroy_array(
float ** array);
158 void sinfo_new_destroy_stringarray(
char ** array,
int size_x);
159 void sinfo_new_intarray_set_value(
int * array,
int value,
int i );
160 void sinfo_new_array2D_set_value(
float ** array,
float value,
int x,
int y );
161 void sinfo_new_destroy_2Dintarray(
int *** array,
int size_x);
162 void sinfo_new_destroy_2Dfloatarray(
float *** array,
int size_x);
163 void sinfo_new_destroy_2Ddoublearray(
double *** array,
int size_x);
164 void sinfo_new_destroy_intarray(
int ** array);
165 void sinfo_new_destroy_doublearray(
double * array);
166 void sinfo_new_doublearray_set_value(
double * array,
double value,
int i );
167 int sinfo_new_intarray_get_value(
int * array,
int i );
168 int * sinfo_new_intarray(
int size);
169 int ** sinfo_new_2Dintarray(
int size_x,
int size_y);
170 double ** sinfo_new_2Ddoublearray(
int size_x,
int size_y);
171 char * sinfo_new_get_rootname(
const char * filename);
172 char * sinfo_new_get_basename(
const char *filename);
173 float sinfo_new_Stats_get_cleanstdev(Stats * stats);
174 float sinfo_new_Stats_get_cleanmean(Stats * stats);
175 float sinfo_new_array2D_get_value(
float ** array,
int x,
int y );
176 float * sinfo_new_floatarray(
int size);
177 float ** sinfo_new_2Dfloatarray(
int size_x,
int size_y);
178 double sinfo_new_doublearray_get_value(
double * array,
int i );
180 double * sinfo_new_doublearray(
int size);
184 cpl_imagelist * sinfo_new_frameset_to_iset(cpl_frameset *) ;
186 sinfo_new_imagelist_load_frameset(
const cpl_frameset * frameset,cpl_type type,
187 int pnum,
int extnum);
189 char ** sinfo_new_frameset_to_filenames(cpl_frameset *set,
int *nfiles);
190 char ** new_frameset_to_tags(cpl_frameset *set,
int *ntags);
191 double sinfo_spline_hermite(
double xp,
197 cpl_error_code update_bad_pixel_map(cpl_image* im);
199 cpl_polynomial * sinfo_polynomial_fit_2d_create(cpl_bivector * xy_pos,
203 cpl_polynomial * sinfo_polynomial_fit_1d_create(
204 const cpl_vector * x_pos,
205 const cpl_vector * values,
209 cpl_image * sinfo_image_filter_median(
const cpl_image *,
const cpl_matrix *);
210 cpl_image * sinfo_image_filter_linear(
const cpl_image *,
const cpl_matrix *);
211 cpl_image * sinfo_image_filter_linear2(
const cpl_image *,
const cpl_matrix *);