00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef MUSE_CPLWRAPPERS_H
00023 #define MUSE_CPLWRAPPERS_H
00024
00025
00026
00027
00028 #include <cpl.h>
00029
00030
00031
00032
00033
00034
00035
00036
00037
00041
00051
00052 typedef struct {
00054 const char *name;
00056 cpl_type type;
00058 const char *unit;
00060 const char *format;
00062 const char *description;
00064 const int required;
00065 } muse_cpltable_def;
00066
00067
00071
00072
00073 typedef enum {
00075 MUSE_CPLFRAMEWORK_UNKNOWN = 0,
00077 MUSE_CPLFRAMEWORK_ESOREX = 1,
00079 MUSE_CPLFRAMEWORK_PYTHONCPL = 2,
00081 MUSE_CPLFRAMEWORK_GASGANO = 3
00082 } muse_cplframework_type;
00083
00084
00088
00089 typedef int (*muse_cplmatrix_element_compare_func)(double aValue1, double aValue2);
00090
00093
00094
00095
00096 cpl_error_code muse_cplimage_or(cpl_image *, const cpl_image *, unsigned int);
00097 cpl_image *muse_cplimage_concat_x(const cpl_image *, const cpl_image *);
00098 cpl_image *muse_cplimage_concat_y(const cpl_image *, const cpl_image *);
00099 cpl_image *muse_cplimage_filter_median_subtract(cpl_image *, unsigned int, unsigned int);
00100 cpl_vector *muse_cplimage_slope_window(const cpl_image *, const cpl_size *);
00101 double muse_cplimage_get_percentile(const cpl_image *, double);
00102
00103 cpl_image *muse_cplimagelist_collapse_or_create(const cpl_imagelist *);
00104
00105 cpl_mask *muse_cplmask_adapt_to_image(const cpl_mask *, const cpl_image *);
00106
00107 cpl_matrix *muse_cplmatrix_multiply_create(const cpl_matrix *, const cpl_matrix *);
00108 cpl_array *muse_cplmatrix_where(const cpl_matrix *, double, muse_cplmatrix_element_compare_func);
00109 cpl_matrix *muse_cplmatrix_extract_selected(const cpl_matrix *, const cpl_array *);
00110
00111 double muse_cplvector_get_adev_const(const cpl_vector *, double);
00112 double muse_cplvector_get_median_dev(cpl_vector *, double *);
00113 double muse_cplvector_get_semiquartile(cpl_vector *);
00114 cpl_error_code muse_cplvector_threshold(cpl_vector *, double, double, double, double);
00115 cpl_error_code muse_cplvector_erase_element(cpl_vector *, int);
00116 cpl_size muse_cplvector_count_unique(const cpl_vector *);
00117 cpl_vector *muse_cplvector_get_unique(const cpl_vector *);
00118
00119 cpl_table *muse_cpltable_new(const muse_cpltable_def *, cpl_size);
00120 cpl_table *muse_cpltable_load(const char *, const char *, const muse_cpltable_def []);
00121 cpl_error_code muse_cpltable_check(const cpl_table *, const muse_cpltable_def *);
00122 cpl_error_code muse_cpltable_append_file(const cpl_table *, const char *, const char *, const muse_cpltable_def[]);
00123 cpl_array *muse_cpltable_extract_column(cpl_table *, const char *);
00124 cpl_error_code muse_cpltable_copy_array(cpl_table *, const char *, const cpl_array *);
00125 cpl_array *muse_cpltable_get_array_copy(cpl_table *, const char *, cpl_size);
00126 cpl_size muse_cpltable_find_sorted(const cpl_table *, const char *, double);
00127
00128 cpl_array *muse_cplarray_new_from_image(const cpl_image *);
00129 cpl_error_code muse_cplarray_poly1d(cpl_array *, const cpl_array *);
00130 double muse_cplarray_poly1d_double(double, const cpl_array *);
00131 cpl_array *muse_cplarray_extract(cpl_array *, cpl_size, cpl_size);
00132 cpl_error_code muse_cplarray_add_window(cpl_array *a, cpl_size, const cpl_array *);
00133 cpl_error_code muse_cplarray_sort(cpl_array *, cpl_boolean order);
00134 cpl_bivector *muse_cplarray_histogram(const cpl_array *, double, double, double);
00135 cpl_size muse_cplarray_find_sorted(const cpl_array *, double);
00136 cpl_boolean muse_cplarray_has_duplicate(const cpl_array *);
00137 cpl_error_code muse_cplarray_dump_name(const cpl_array *, const char *);
00138 cpl_error_code muse_cplarray_erase_invalid(cpl_array *);
00139 cpl_size muse_cplarray_erase_outliers(cpl_array *, const cpl_bivector *, cpl_size, double);
00140 cpl_array *muse_cplarray_diff(const cpl_array *, int);
00141 cpl_error_code muse_cplarray_erf(cpl_array *);
00142 cpl_error_code muse_cplarray_exp(cpl_array *);
00143 cpl_array *muse_cplarray_interpolate_linear(const cpl_array *, const cpl_array *, const cpl_array *);
00144 cpl_array *muse_cplarray_interpolate_table_linear(const cpl_array *, const cpl_table *, const char *, const char *);
00145 cpl_array *muse_cplarray_new_from_delimited_string(const char *, const char *);
00146 cpl_array *muse_cplarray_string_to_double(const cpl_array *);
00147
00148 cpl_parameter *muse_cplparamerterlist_find_prefix(cpl_parameterlist *, const char *, const char *);
00149 cpl_parameterlist *muse_cplparameterlist_from_propertylist(const cpl_propertylist *, int);
00150 cpl_parameterlist *muse_cplparameterlist_duplicate(const cpl_parameterlist *);
00151
00152 cpl_error_code muse_cplpropertylist_update_long_long(cpl_propertylist *, const char *, cpl_size);
00153
00154 cpl_error_code muse_cplframeset_erase_all(cpl_frameset *);
00155 cpl_error_code muse_cplframeset_erase_duplicate(cpl_frameset *);
00156
00157 void muse_cplerrorstate_dump_some(unsigned, unsigned, unsigned);
00158 muse_cplframework_type muse_cplframework(void);
00159
00160 #endif