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
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00055 #ifndef __LIBGPIV_PIVPAR_H__
00056 #define __LIBGPIV_PIVPAR_H__
00057
00058
00059
00060
00061
00062 #define GPIV_PIVPAR_KEY "PIV"
00068 enum GpivIntScheme {
00069 GPIV_NO_CORR,
00070 GPIV_LK_WEIGHT,
00071 GPIV_ZERO_OFF_FORWARD,
00072 GPIV_ZERO_OFF_CENTRAL,
00073 GPIV_IMG_DEFORM
00074 };
00075
00076
00080 typedef struct __GpivPivPar GpivPivPar;
00081
00091 struct __GpivPivPar {
00092 guint col_start;
00093 gboolean col_start__set;
00095 guint col_end;
00096 gboolean col_end__set;
00098 guint ifit;
00099 gboolean ifit__set;
00101 guint int_geo;
00102 gboolean int_geo__set;
00104 guint int_line_col;
00105 gboolean int_line_col__set;
00107 guint int_line_col_start;
00108 gboolean int_line_col_start__set;
00110 guint int_line_col_end;
00111 gboolean int_line_col_end__set;
00113 guint int_line_row;
00114 gboolean int_line_row__set;
00116 guint int_line_row_start;
00117 gboolean int_line_row_start__set;
00119 guint int_line_row_end;
00120 gboolean int_line_row_end__set;
00122 guint int_point_col;
00123 gboolean int_point_col__set;
00125 guint int_point_row;
00126 gboolean int_point_row__set;
00128
00129 guint int_size_1;
00130 gboolean int_size_1__set;
00132 guint int_size_2;
00133 gboolean int_size_2__set;
00135 gint int_shift;
00136 gboolean int_shift__set;
00138 int int_deform;
00139 gboolean int_deform__set;
00141 gint peak;
00142 gboolean peak__set;
00144 int pre_shift_col;
00145 gboolean pre_shift_col__set;
00147 int pre_shift_row;
00148 gboolean pre_shift_row__set;
00150 int print_par;
00151 gboolean print_par__set;
00153 int print_piv;
00154 gboolean print_piv__set;
00156 guint row_start;
00157 gboolean row_start__set;
00159 guint row_end;
00160 gboolean row_end__set;
00162 int spline_degree;
00163 gboolean spline_degree__set;
00165 enum GpivIntScheme int_scheme;
00166 gboolean int_scheme__set;
00168 gboolean gauss_weight_ia;
00169 gboolean gauss_weight_ia__set;
00171 gboolean spof_filter;
00172 gboolean spof_filter__set;
00173 };
00174
00175
00176
00177
00178
00179
00189 void
00190 gpiv_piv_default_parameters (GpivPivPar *piv_par_default,
00191 const gboolean force
00192 );
00193
00194
00195
00204 GpivPivPar *
00205 gpiv_piv_get_parameters_from_resources (const gchar *localrc,
00206 const gboolean verbose
00207 );
00208
00209
00210
00218 void
00219 gpiv_piv_parameters_set (GpivPivPar *piv_par,
00220 const gboolean flag
00221 );
00222
00223
00224
00234 void
00235 gpiv_piv_read_parameters (FILE *fp,
00236 GpivPivPar *piv_par,
00237 const gboolean verbose
00238 );
00239
00240
00241
00252 gchar *
00253 gpiv_piv_check_parameters_read (GpivPivPar *piv_par,
00254 const GpivPivPar *piv_par_default
00255 );
00256
00257
00258
00267 gchar *
00268 gpiv_piv_testonly_parameters (const GpivImagePar *image_par,
00269 const GpivPivPar *piv_par
00270 );
00271
00272
00273
00283 gchar *
00284 gpiv_piv_testadjust_parameters (const GpivImagePar *image_par,
00285 GpivPivPar *piv_par
00286 );
00287
00288
00289
00298 void
00299 gpiv_piv_print_parameters (FILE *fp,
00300 const GpivPivPar *piv_par
00301 );
00302
00309 GpivPivPar *
00310 gpiv_piv_cp_parameters (const GpivPivPar *piv_par
00311 );
00312
00313
00322 void
00323 gpiv_piv_cp_undef_parameters (const GpivPivPar *piv_par_src,
00324 GpivPivPar *piv_par_dest
00325 );
00326
00327
00334 GpivPivPar *
00335 gpiv_piv_fread_hdf5_parameters (const gchar *fname
00336 );
00337
00338
00346 gchar *
00347 gpiv_piv_fwrite_hdf5_parameters (const gchar *fname,
00348 const GpivPivPar *piv_par
00349 );
00350
00351
00352
00353 #endif