TPCCLIB
Loading...
Searching...
No Matches
heartcorr.c File Reference

Functions for correcting spill-over and recovery errors in myocardial LV muscle and cavity. More...

#include "libtpcidi.h"

Go to the source code of this file.

Functions

int heartRecoverySpilloverCorrectionFactors (double R, double d, double s, double Vb, double *FMM, double *FMB, double *FBM, double *FBB)

Detailed Description

Functions for correcting spill-over and recovery errors in myocardial LV muscle and cavity.

Author
Vesa Oikonen

Definition in file heartcorr.c.

Function Documentation

◆ heartRecoverySpilloverCorrectionFactors()

int heartRecoverySpilloverCorrectionFactors ( double R,
double d,
double s,
double Vb,
double * FMM,
double * FMB,
double * FBM,
double * FBB )

Calculate recovery and spillover correction coefficients.

Based on Henze E, Huang S-C, Ratib O, Hoffman E, Phelps ME, Schelbert HR. Measurements of regional tissue and blood-pool radiotracer concentrations from serial tomographic images of the heart. J Nucl Med. 1983;24:987-996.

See also
rcPeakPET, simMyocDiameterCurve, imgSimulateSphere
Returns
Returns 0 if successful, or <> 0 in case of an error.
Parameters
Rradius of cavity and circular ROI (mm).
dthickness of myocardium (mm).
sspatial resolution (mm); s = FWHM/(2*SQRT(2*LN(2))).
VbVascular volume fraction in myocardium; Henze et al assumed 0.1.
FMMPointer to resulting correction coefficient FMM, see the article.
FMBPointer to resulting correction coefficient FMB, see the article.
FBMPointer to resulting correction coefficient FBM, see the article.
FBBPointer to resulting correction coefficient FBB, see the article.

Definition at line 37 of file heartcorr.c.

54 {
55 double hp;
56
57 if(R<=0.0 || d<=0.0 || s<=0.0) return(1);
58 if(FMM==NULL || FMB==NULL || FBM==NULL || FBB==NULL) return(2);
59 if(Vb<0.0 || Vb>=1.0) return(3);
60 hp = exp(-R*R/(2.0*s*s));
61 *FMB = hp - exp(-(R+d)*(R+d)/(2.0*s*s));
62 *FMM = erf( (d/2.0) / (M_SQRT2*s) );
63 *FBB = 1.0 - hp;
64 *FBM = Vb + 0.5*(1.0 - *FMM); //0.6 - 0.5 * *FMM;
65 return(0);
66}