Main Page | Files | Data Structures | Functions | Global Variables |
include/gpiv/gpiv-piv.h
Go to the documentation of this file.
00001 /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4 c-style: "K&R" -*- */
00002 
00003 /*-----------------------------------------------------------------------------
00004 
00005    libgpiv - library for Particle Image Velocimetry
00006 
00007    Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Gerber van der Graaf
00008 
00009    This file is part of libgpiv.
00010 
00011    Libgpiv is free software; you can redistribute it and/or modify
00012    it under the terms of the GNU General Public License as published by
00013    the Free Software Foundation; either version 2, or (at your option)
00014    any later version.
00015 
00016    This program is distributed in the hope that it will be useful,
00017    but WITHOUT ANY WARRANTY; without even the implied warranty of
00018    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019    GNU General Public License for more details.
00020 
00021    You should have received a copy of the GNU General Public License
00022    along with this program; if not, write to the Free Software Foundation,
00023    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
00024 
00025 -------------------------------------------------------------------------------
00026 LIBRARY:                libgpiv
00027 
00028 SOURCE:                 piv.c
00029 
00030 EXTERNAL FUNCTIONS:
00031                         gpiv_piv_count_pivdata_fromimage
00032                         gpiv_piv_select_int_point
00033                         gpiv_piv_interrogate_img
00034                         gpiv_piv_interrogate_ia
00035                         gpiv_piv_isizadapt
00036                         gpiv_piv_write_deformed_image
00037                         gpiv_piv_weight_kernel_lin
00038                         gpiv_fread_fftw_wisdom
00039                         gpiv_fwrite_fftw_wisdom
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  * Function prototypes
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 /* __LIBGPIV_PIV_H__ */