OSDN Git Service

modified: src/Tools/mrcImage/mrcImageShrink/src/test/Makefile
[eos/hostdependX86LINUX64.git] / include / lmrcImageSymmetryFind.h
1 /*
2 # %M% %Y% %I%
3 # The latest update : %G% at %U%
4 #
5 #%Z% lmrcImageSymmetryFind ver %I%
6 #%Z% Created by 
7 #%Z%
8 #%Z% Usage : lmrcImageSymmetryFind 
9 #%Z% Attention
10 #%Z%
11 */
12 #ifndef  LMRC_IMAGE_SYMMETRY_FIND_H 
13 #define  LMRC_IMAGE_SYMMETRY_FIND_H
14
15 #include <stdio.h>
16 #include <stdlib.h>
17 #include <string.h>
18 #include <math.h>                  
19 #define GLOBAL_DECLARATION
20
21 #undef DEBUG
22 #include "genUtil.h"
23 #include "Vector.h"
24 #include "lDescartesIntoPolar.h"
25 #include "lmrcImageTransformDescartesIntoPolar.h"
26 #include "mrcImage.h"
27
28 /* struct begin */
29 typedef enum lmrcImageSymmetryFindCheckType {
30         lmrcImageSymmetryFindCheckTypeCheckByAdd=1,
31         lmrcImageSymmetryFindCheckTypeCheckByCorrelation=2,
32         lmrcImageSymmetryFindCheckTypeCheckByFourier=4,
33         lmrcImageSymmetryFindCheckTypeCheckByTTest=8,
34         lmrcImageSymmetryFindCheckTypeCheckBySRP=16
35 } lmrcImageSymmetryFindCheckType;
36
37 typedef enum lmrcImageSymmetryFindCentreType {
38         lmrcImageSymmetryFindCheckTypeCentreGC       = 0,
39         lmrcImageSymmetryFindCheckTypeCentreSymmetry = 1 
40 } lmrcImageSymmetryFindCentreType;
41
42 typedef enum lmrcImageSymmetryFindSubtractionType {
43         lmrcImageSymmetryFindCheckTypeNoSubtraction   = 0,
44         lmrcImageSymmetryFindCheckTypeMeanSubtraction = 1,
45         lmrcImageSymmetryFindCheckTypeMinSubtraction  = 2 
46 } lmrcImageSymmetryFindSubtractionType;
47
48 typedef struct lmrcImageSymmetryFindInfo {
49         double dr;
50         double dtheta;
51         double threshold1;
52         double threshold2;
53         int    minNfold;
54         int    maxNfold;
55
56         /* Centre */
57         lmrcImageSymmetryFindCentreType centreMode;
58         lmrcImageDeterminationOfPolarAxisByAssumingNfoldInfo centreInfo;
59
60         lmrcImageSymmetryFindSubtractionType subtractionMode; /* Subtraction Mode */
61         int       flagImages;
62         mrcImage  Image;
63         mrcImage* Images;
64         int       flagBacks;
65         mrcImage  Back;
66         mrcImage* Backs;
67         
68         floatVector Value;
69         floatVector Point;
70         int         Symmetry;
71
72         FILE*    fptOut;
73
74         int      flagCorrelation;
75         mrcImage correlation;
76
77         int      flagFourier;
78         mrcImage  fourier;
79
80         int      flagTmap;
81         mrcImage tmap;
82
83         int      flagAvg;
84         mrcImage avg;
85         char*    avgName;
86         DescartesCoord centre;
87 } lmrcImageSymmetryFindInfo;
88
89 /* struct end */
90
91 /* prototype begin */
92 extern void 
93 lmrcImageSymmetryFind(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode); 
94
95 extern void
96 lmrcImageSymmetryFindCheckByAdd(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
97
98 extern void
99 lmrcImageSymmetryFindCheckByCorrelation(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
100
101 extern void
102 lmrcImageSymmetryFindCheckByFourier(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
103
104 extern void
105 lmrcImageSymmetryFindCheckByTTest(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
106
107 extern void
108 lmrcImageSymmetryFindCheckBySRP(mrcImage* in, lmrcImageSymmetryFindInfo* linfo, int mode);
109
110 extern void
111 lmrcImageSymmetryAverage(mrcImage* out, mrcImage* in, int num, DescartesCoord centre, int mode);
112
113 extern void
114 lmrcImageSymmetryFindResultOut(FILE* fpt, mrcImage* in, lmrcImageSymmetryFindInfo* linfo,  int mode);
115
116 extern void
117 lmrcImageSymmetryFindSubtraction(mrcImage* subout, mrcImage* in, lmrcImageSymmetryFindInfo* info, int mode);
118
119 extern void 
120 lmrcImageSymmetryFindModePrint(FILE* fpt);
121
122 extern void
123 lmrcImageSymmetryCentreFind(mrcImage* in, DescartesCoord* centre, int mode);
124 /* prototype end */
125
126 #endif