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
00055 #ifndef __LIBGPIV_PIV_H__
00056 #define __LIBGPIV_PIVL_H__
00057
00058
00059 #include <gpiv/gpiv-piv_par.h>
00060 #include <gpiv/gpiv-valid_par.h>
00061
00062
00063
00064 #define GPIV_ZEROPAD_FACT 2
00065 #define GPIV_DIFF_ISI 0
00068 #define GPIV_CUM_RESIDU_MIN 0.25
00069 #define GPIV_MAX_PIV_SWEEP 10
00071 #define GPIV_SNR_DISABLE 88.0
00072 #define GPIV_DEFORMED_IMG_NAME "gpiv_defimg"
00073 #define GPIV_LOGFILE "gpiv.log"
00076 #define CMPR_FACT 2
00078 #define GPIV_SHIFT_FACTOR 3
00086 enum GpivIFit {
00087 GPIV_NONE = 0,
00088 GPIV_GAUSS = 1,
00089 GPIV_POWER = 2,
00090 GPIV_GRAVITY = 3
00091 };
00092
00093
00094
00098 enum GpivIntGeo {
00099 GPIV_AOI = 0,
00100 GPIV_LINE_C = 1,
00101 GPIV_LINE_R = 2,
00102 GPIV_POINT = 3
00103 };
00104
00105
00106
00107 typedef struct __GpivCovariance GpivCov;
00114 struct __GpivCovariance {
00115 float **z;
00116 float min;
00117 float max;
00119 long top_x;
00120 long top_y;
00121 float subtop_x;
00122 float subtop_y;
00123 float snr;
00126 int z_rnl;
00127 int z_rnh;
00128 int z_rpl;
00129 int z_rph;
00131 int z_cnl;
00132 int z_cnh;
00133 int z_cpl;
00134 int z_cph;
00136 int z_rl;
00137 int z_rh;
00138 int z_cl;
00139 int z_ch;
00140 };
00141
00142
00143
00144
00145
00146
00147
00148
00149
00160 gchar *
00161 gpiv_piv_count_pivdata_fromimage (const GpivImagePar *image_par,
00162 const GpivPivPar *piv_par,
00163 guint *nx,
00164 guint *ny
00165 );
00166
00167
00178 GpivPivData *
00179 gpiv_piv_interrogate_img (const GpivImage *image,
00180 const GpivPivPar *piv_par,
00181 const GpivValidPar *valid_par,
00182 const gboolean verbose
00183 );
00184
00185
00202 gchar *
00203 gpiv_piv_interrogate_ia (const guint index_y,
00204 const guint index_x,
00205 const GpivImage *image,
00206 const GpivPivPar *piv_par,
00207 const guint sweep,
00208 const guint last_sweep,
00209 gfloat **int_area_1,
00210 gfloat **int_area_2,
00211 GpivCov *cov,
00212 GpivPivData *piv_data
00213 );
00214
00215
00216
00229 void
00230 gpiv_piv_isizadapt (const GpivPivPar *piv_par_src,
00231 GpivPivPar *piv_par_dest,
00232 gboolean *isiz_last
00233 );
00234
00235
00236
00244 gchar *
00245 gpiv_piv_write_deformed_image (GpivImage *image
00246 );
00247
00248
00249
00250
00257 void
00258 gpiv_fread_fftw_wisdom (const gint dir
00259 );
00260
00261
00262
00270 void
00271 gpiv_fwrite_fftw_wisdom (const gint dir
00272 );
00273
00274
00284 gchar *
00285 gpiv_piv_dxdy_at_new_grid (const GpivPivData *piv_data_src,
00286 GpivPivData *piv_data_dest
00287 );
00288
00289
00290
00301 gchar *
00302 gpiv_piv_shift_grid (GpivPivData *piv_data
00303 );
00304
00305
00306
00316 GpivPivData *
00317 gpiv_piv_gridgen (const guint nx,
00318 const guint ny,
00319 const GpivImagePar *image_par,
00320 const GpivPivPar *piv_par
00321 );
00322
00323
00324
00341 GpivPivData *
00342 gpiv_piv_gridadapt (const GpivImagePar *image_par,
00343 const GpivPivPar *piv_par_src,
00344 GpivPivPar *piv_par_dest,
00345 const GpivPivData *piv_data,
00346 const guint sweep,
00347 gboolean *grid_last
00348 );
00349
00350
00351 #endif