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
00045
00046
00047
00048
00049
00050
00051
00052
00053
00064 #ifndef __LIBGPIV_IMGPROC_H__
00065 #define __LIBGPIV_IMGPROC_H__
00066
00067 #define GPIV_IMGPROCPAR_MAX__THRESHOLD 255
00068 #define GPIV_IMGPROCPAR_MAX__WINDOW 50
00069
00070 #define GPIV_IMGPROCPAR_KEY "IMGPROC"
00075 enum GpivImgFilter {
00076 GPIV_IMGFI_MKTESTIMG,
00077 GPIV_IMGFI_SUBACK,
00078 GPIV_IMGFI_SMOOTH,
00079 GPIV_IMGFI_HILO,
00080 GPIV_IMGFI_CLIP,
00082 GPIV_IMGFI_FFT,
00083 GPIV_IMGFI_INVFFT,
00084 GPIV_IMGFI_CORR,
00085 GPIV_IMGFI_CONV,
00086 GPIV_IMGFI_LOWPASS,
00087 GPIV_IMGFI_HIGHPASS,
00089 GPIV_IMGFI_GETBIT,
00090 };
00091
00095 enum GpivImgSmoothOperator {
00096 GPIV_IMGOP_EQUAL,
00097 GPIV_IMGOP_SUBTRACT,
00098 GPIV_IMGOP_ADD,
00099 GPIV_IMGOP_MULTIPLY,
00100 GPIV_IMGOP_DIVIDE
00101 };
00102
00103
00104 typedef struct __GpivImageProcPar GpivImageProcPar;
00105
00116 struct __GpivImageProcPar {
00117 guint bit;
00118 gboolean bit__set;
00120 enum GpivImgFilter filter;
00121 gboolean filter__set;
00123 enum GpivImgSmoothOperator smooth_operator;
00124 gboolean smooth_operator__set;
00126 guint window;
00127 gboolean window__set;
00129 guint threshold;
00130 gboolean threshold__set;
00131 };
00132
00133
00134
00135
00143 void
00144 gpiv_imgproc_parameters_set (GpivImageProcPar *image_proc_par,
00145 const gboolean flag
00146 );
00147
00148
00149
00157 void
00158 gpiv_imgproc_default_parameters (GpivImageProcPar *imgproc_par_default,
00159 const gboolean force
00160 );
00161
00162
00163
00173 void
00174 gpiv_imgproc_read_parameters (FILE *fp_h,
00175 GpivImageProcPar *image_proc_par,
00176 const gboolean print_par
00177 );
00178
00179
00180
00190 gchar *
00191 gpiv_imgproc_check_parameters_read (GpivImageProcPar *image_proc_par,
00192 const GpivImageProcPar *image_proc_par_default
00193 );
00194
00195
00196
00203 gchar *
00204 gpiv_imgproc_test_parameters (const GpivImageProcPar *image_proc_par
00205 );
00206
00207
00208
00217 void
00218 gpiv_imgproc_print_parameters (FILE *fp,
00219 const GpivImageProcPar *image_proc_par
00220 );
00221
00222
00229 GpivImageProcPar *
00230 gpiv_imgproc_cp_parameters (const GpivImageProcPar *imgproc_par
00231 );
00232
00233
00242 GpivImage *
00243 gpiv_imgproc_mktestimg (const GpivImagePar *image_par,
00244 const GpivImageProcPar *image_proc_par
00245 );
00246
00247
00257 gchar *
00258 gpiv_imgproc_subtractimg (const GpivImage *image_in,
00259 GpivImage *image_out
00260 );
00261
00262
00271 gchar *
00272 gpiv_imgproc_smooth (GpivImage *image,
00273 const GpivImageProcPar *image_proc_par
00274 );
00275
00276
00285 gchar *
00286 gpiv_imgproc_highpass (GpivImage *image,
00287 const GpivImageProcPar *image_proc_par
00288 );
00289
00290
00299 gchar *
00300 gpiv_imgproc_highlow (GpivImage *image,
00301 const GpivImageProcPar *image_proc_par
00302 );
00303
00304
00312 gchar *
00313 gpiv_imgproc_clip (GpivImage *image,
00314 const GpivImageProcPar *image_proc_par
00315 );
00316
00317
00326 gchar *
00327 gpiv_imgproc_getbit (GpivImage *image,
00328 const GpivImageProcPar *image_proc_par
00329 );
00330
00331
00339 gchar *
00340 gpiv_imgproc_fft (GpivImage *image,
00341 const GpivImageProcPar *image_proc_par
00342 );
00343
00344
00345 #ifndef USE_FFTW3
00346
00355 gchar *
00356 gpiv_imgproc_lowpass (GpivImagePar image_par,
00357 GpivImageProcPar image_proc_par,
00358 guint16 **img
00359 );
00360
00361
00362
00373 gchar *
00374 gpiv_imgproc_correlate (GpivImagePar image_par,
00375 GpivImageProcPar image_proc_par,
00376 guint16 **img1_in,
00377 guint16 **img2_in,
00378 guint16* **img_out
00379 );
00380
00381
00382
00394 gchar *
00395 gpiv_imgproc_convolve (GpivImagePar image_par,
00396 GpivImageProcPar image_proc_par,
00397 guint16 **img1_in,
00398 guint16 **img2_in,
00399 guint16* **img_out
00400 );
00401
00402 #endif
00403
00404
00414 gchar *
00415 gpiv_imgproc_deform (GpivImage *image,
00416 const GpivPivData *piv_data
00417 );
00418
00419
00420 #endif
00421