00001
00020
00021
00022 #ifndef RADON_H
00023 #define RADON_H
00024
00025
00026 #include "ellipse.h"
00027 #include "prmat.h"
00028
00029
00030
00032 #define RADON_STATUS_UNINITIALIZED 0
00033
00034 #define RADON_STATUS_INITIALIZED 1
00035
00036 #define RADON_STATUS_OCCUPIED 2
00037
00038 #define RADON_STATUS_ERROR 3
00039
00041 int RADON_TEST;
00043 int RADON_VERBOSE;
00044
00045
00046 typedef struct{
00047
00049 char status;
00050
00051
00052
00054 char mode;
00055
00057 int imgDim;
00058
00060 int viewNr;
00061
00063 int binNr;
00064
00066 int half;
00067
00069 int centerBin;
00070
00072 float sampleDist;
00073
00075 float *sines;
00076
00077 }RADON;
00078
00079
00080
00081
00082
00083
00084
00085
00093 void radonEmpty(RADON *radtra);
00094
00106 int radonSet(RADON *radtra,int mode,int imgDim,int viewNr,int binNr);
00107
00108
00109
00115 int radonGetMO(RADON *radtra);
00116
00122 int radonGetID(RADON *radtra);
00123
00129 int radonGetNV(RADON *radtra);
00130
00136 int radonGetNB(RADON *radtra);
00137
00143 float radonGetSD(RADON *radtra);
00144
00150 int radonGetHI(RADON *radtra);
00151
00157 int radonGetCB(RADON *radtra);
00158
00165 float radonGetSin(RADON *radtra, int nr);
00166
00167
00169
00186 int radonFwdTransform(RADON *radtra, int set, int setNr, float *imgdata, float *scndata);
00187
00194 int radonFwdTransformEA(RADON *radtra, int set, int setNr, float *imgdata, float *scndata);
00195
00204 int radonFwdTransformSA(RADON *radtra, int set, int setNr, float *imgdata, float *scndata);
00205
00222 int radonFwdTransformPRM(PRMAT *mat, int set, int setNr, float *imgdata, float *scndata);
00223
00240 int radonBackTransform(RADON *radtra, int set, int setNr, float *scndata, float *imgdata);
00241
00248 int radonBackTransformEA(RADON *radtra, int set, int setNr, float *scndata, float *imgdata);
00249
00258 int radonBackTransformSA(RADON *radtra, int set, int setNr, float *imgdata, float *scndata);
00259
00277 int radonBackTransformPRM(PRMAT *mat, int set, int setNr, float *scndata, float *imgdata);
00278
00280
00294 int radonSetBases(RADON *radtra,ELLIPSE *elli, PRMAT *mat);
00295
00302 int radonSetBasesEA(RADON *radtra,ELLIPSE *elli, PRMAT *mat);
00303
00316 int radonSetLUT(RADON *radtra, ELLIPSE *elli, PRMAT *mat);
00317
00330 int radonSetLORS(RADON *radtra,ELLIPSE *elli, PRMAT *mat);
00331
00332 #endif