~ubuntu-branches/debian/jessie/eso-midas/jessie

« back to all changes in this revision

Viewing changes to contrib/wavelet/incl/Def_Wavelet.h

  • Committer: Package Import Robot
  • Author(s): Ole Streicher
  • Date: 2014-04-22 14:44:58 UTC
  • Revision ID: package-import@ubuntu.com-20140422144458-okiwi1assxkkiz39
Tags: upstream-13.09pl1.2+dfsg
ImportĀ upstreamĀ versionĀ 13.09pl1.2+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
/*************************************************************************
 
3
**           Copyright (C) 1993 by European Southern Observatory
 
4
**************************************************************************
 
5
**
 
6
**    UNIT
 
7
**
 
8
**    Version: 19.1
 
9
**
 
10
**    Author: Jean-Luc Starck
 
11
**
 
12
**    Date:  03/02/25
 
13
**    
 
14
**    File:  Def_Wavelet.h
 
15
**
 
16
*******************************************************************************
 
17
**
 
18
**    DESCRIPTION  Data structures definitions for the wavelet package
 
19
**    -----------   
 
20
******************************************************************************/ 
 
21
 
 
22
/* Wavelet transform algorithm number  */
 
23
#define TO_PAVE_LINEAR   1
 
24
#define TO_PAVE_BSPLINE  2
 
25
#define TO_PAVE_BSPLINE_FFT 3
 
26
#define TO_PYR_LINEAR 4
 
27
#define TO_PYR_BSPLINE 5
 
28
#define TO_PYR_FFT_DIFF_RESOL 6
 
29
#define TO_PYR_FFT_DIFF_SQUARE_RESOL 7
 
30
#define TO_MALLAT_BARLAUD 8
 
31
 
 
32
#define MAX_SIZE_NAME_IMAG 100
 
33
#define MAX_PLAN_WAVELET 20
 
34
 
 
35
/* Function definitions for the algorithms using FFT  */
 
36
#define SCALING_FUNCTION 1
 
37
#define FILTER_H 2
 
38
#define FILTER_H_TILDE 3
 
39
#define FILTER_G 4
 
40
#define FILTER_G_TILDE 5
 
41
#define WAVELET 6
 
42
 
 
43
/* Pyramid data structure */
 
44
typedef struct  {
 
45
        int Tab_Nl[MAX_PLAN_WAVELET];
 
46
        int Tab_Col[MAX_PLAN_WAVELET];
 
47
        int Tab_Pos[MAX_PLAN_WAVELET];
 
48
        int Size;
 
49
        float Freq_Coup;
 
50
        float *Data;
 
51
                } pyramid_f_des;
 
52
 
 
53
/* Complex pyramid data structure */
 
54
typedef struct  {
 
55
        int Tab_Nl[MAX_PLAN_WAVELET];
 
56
        int Tab_Col[MAX_PLAN_WAVELET];
 
57
        int Tab_Pos[MAX_PLAN_WAVELET];
 
58
        int Size;
 
59
        float Freq_Coup; /* Frequency cutt-off */
 
60
        complex_float *Data;
 
61
                } pyramid_cf_des;
 
62
 
 
63
/* Data  structure for an algorithm without reduction of sampling */
 
64
typedef struct  {
 
65
        float *Data;
 
66
        float Freq_Coup;  /* Frequency cutt-off */
 
67
                } pave_f_des;
 
68
 
 
69
 
 
70
/* Data structure for Mallat's algorithm */
 
71
struct mallat_plan_des  {
 
72
        int Nl,Nc;
 
73
        float *Coef_Horiz;
 
74
        float *Coef_Diag;
 
75
        float *Coef_Vert;
 
76
        float *Low_Resol;
 
77
        struct mallat_plan_des *Smooth_Imag;
 
78
        } mallat_plan_des;
 
79
 
 
80
/* Data structure for a wavelet transform */
 
81
typedef struct  {
 
82
        /* Image name */
 
83
        char Name_Imag [MAX_SIZE_NAME_IMAG];
 
84
        /* Line and column number */
 
85
        int Nbr_Ligne, Nbr_Col;
 
86
        /* Scale Number */
 
87
        int Nbr_Plan;
 
88
        /* Transform algorithm choosen */
 
89
        int Type_Wave_Transform;
 
90
        /* Buffer for the data */
 
91
        pyramid_f_des Pyramid;
 
92
        pave_f_des Pave;
 
93
        struct mallat_plan_des Mallat;
 
94
                 } wave_transf_des;
 
95
 
 
96
/* Data structure for image information */
 
97
typedef struct {
 
98
        float Sigma;
 
99
        float Mean;
 
100
        float Min, Max;
 
101
        float Energ, Entrop;
 
102
        float Correl_Plan[MAX_PLAN_WAVELET];
 
103
                 } plan_info_des;
 
104
 
 
105
/* Filtering */
 
106
 
 
107
    /* Thresholding */
 
108
#define FILTER_TRESHOLD 1     
 
109
 
 
110
    /* Adaptative thresholding */
 
111
#define FILTER_HIERARCHICAL_TRESHOLD 2
 
112
 
 
113
    /* Hierarchical Wiener filtering */
 
114
#define FILTER_HIERARCHICAL 3
 
115
 
 
116
    /* Multiresolution Wiener filtering */
 
117
#define FILTER_MULTI_RES_WIENER 4
 
118
 
 
119
#define TO1_FRENCH 1
 
120
#define TO1_MEX 2
 
121
#define TO1_LINEAR 3
 
122
#define TO1_B1SPLINE 4
 
123
#define TO1_B3SPLINE 5
 
124
#define TO1_MORLET 6
 
125
#define TO1_ROBUST 7
 
126
#define TO1_D1GAUS 8