2 ***********************************************************
3 $SNARK_Header: S N A R K 1 4 - A PICTURE RECONSTRUCTION PROGRAM $
4 $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/bh_correction.h $
5 $LastChangedRevision: 85 $
6 $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
8 ***********************************************************
12 * The class bh_correction is responsible for performing beam hardening
13 * correction for polychromatic input data. Given the prjfil that was calculated
14 * based on weighted average of attenuations at different energy levels and
15 * corrections coefficients [1,2] it approximates monochromatic projection data
16 * which is then used by the reconstruction algorithms.
21 * [1] G. T. Herman, Image Reconstruction from Projections, 1980
36 #ifndef _BH_CORRECTION_H
37 #define _BH_CORRECTION_H
39 //jk 8/26/08 for use with beam hardening correction by non-parametric
44 unsigned int noOfItems;
68 BOOLEAN bhc;BOOLEAN bhc_poly;
72 INTEGER nerg; //number of energy levels read from the input file
73 //should be the same as Spectrm.nergy
75 INTEGER noIter; //number of iterations
78 REAL * a; //array of polynomial coefficients
79 INTEGER noDegree; //degree of the polynomial
80 INTEGER noDegreeConv; //degree of the polynomials for converting
81 //phantom data from energy[0] to other energy levels
82 REAL * b[7]; //array of polynomial coefficients for converting
83 //phantom data from energy[0] to other energy levels
85 INTEGER noPointsConv; //number of points used for piecewise linear conversion
86 point * c[7]; //list of points for each energy level that are used
87 //in piecewise linear conversion
95 for (int i = 0; i < 7; i++)
103 for (int i = 6; i >= 0; i--)
110 INTEGER readInputFilePoly();
112 INTEGER correction(SnarkPrjFile * BHC_PrjFile);INTEGER idr_correction(
116 #endif /* _BH_CORRECTION_H */