** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: reconstruct.cpp,v 1.12 2001/02/11 04:56:37 kevin Exp $
+** $Id: reconstruct.cpp,v 1.15 2001/03/01 07:30:49 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
double filterBW = 1. / m_rProj.detInc();
m_pProcessSignal = new ProcessSignal (filterName, filterMethodName, filterBW, m_rProj.detInc(),
m_rProj.nDet(), filt_param, "spatial", filterGenerationName, zeropad, interpFactor, iTrace,
- m_rProj.geometry(), m_rProj.focalLength(), pSGP);
+ m_rProj.geometry(), m_rProj.focalLength(), m_rProj.sourceDetectorLength(), pSGP);
if (m_pProcessSignal->fail()) {
m_bFail = true;
return;
}
-#if HAVE_SGP
+#ifdef HAVE_SGP
m_adPlotXAxis = new double [m_rProj.nDet()];
double x = - ((m_rProj.nDet() - 1) / 2) * m_rProj.detInc();
double xInc = m_rProj.detInc();
void
Reconstructor::plotFilter (SGP* pSGP)
{
-#if HAVE_SGP
+#ifdef HAVE_SGP
int nVecFilter = m_pProcessSignal->getNFilterPoints();
double* adPlotXAxis = new double [nVecFilter];
Reconstructor::reconstructAllViews ()
{
reconstructView (0, m_rProj.nView());
- delete m_pBackprojector; m_pBackprojector = NULL;
+ postProcessing();
+}
+
+void
+Reconstructor::postProcessing()
+{
+ m_pBackprojector->PostProcessing();
}
osXLength << "xlength " << dGraphWidth;
ezplotProj.ezset ("clear");
- ezplotProj.ezset ("title Filtered Projection");
+ ezplotProj.ezset ("title Raw Projection");
ezplotProj.ezset ("xticks major 5");
+ ezplotProj.ezset ("yticks major 5");
ezplotProj.ezset ("xlabel ");
ezplotProj.ezset ("ylabel ");
- ezplotProj.ezset ("yticks major 5");
- ezplotProj.ezset ("yporigin 0.10");
+ ezplotProj.ezset ("yporigin 0.55");
ezplotProj.ezset ("ylength 0.45");
ezplotProj.ezset (osXLength.str().c_str());
- ezplotProj.ezset ("box");
- ezplotProj.ezset ("grid");
- ezplotProj.addCurve (m_adPlotXAxis, adFilteredProj, m_nFilteredProjections);
+ ezplotProj.ezset ("box.");
+ ezplotProj.ezset ("grid.");
+#if 0 // workaround c++ optimizer bug, now disabled by using /O1 in code
+ double* pdDetval = new double [m_rProj.nDet()];
+ for (unsigned int id = 0; id < m_rProj.nDet(); id++) {
+ pdDetval[id] = detval[id];
+ }
+ ezplotProj.addCurve (m_adPlotXAxis, pdDetval, m_rProj.nDet());
+ delete pdDetval;
+#else
+ ezplotProj.addCurve (m_adPlotXAxis, detval, m_rProj.nDet());
+#endif
pSGP->setTextPointSize (12);
ezplotProj.plot (pSGP);
ezplotProj.ezset ("clear");
- ezplotProj.ezset ("title Raw Projection");
+ ezplotProj.ezset ("title Filtered Projection");
ezplotProj.ezset ("xticks major 5");
- ezplotProj.ezset ("yticks major 5");
ezplotProj.ezset ("xlabel ");
ezplotProj.ezset ("ylabel ");
- ezplotProj.ezset ("yporigin 0.55");
+ ezplotProj.ezset ("yticks major 5");
+ ezplotProj.ezset ("yporigin 0.10");
ezplotProj.ezset ("ylength 0.45");
ezplotProj.ezset (osXLength.str().c_str());
- ezplotProj.ezset ("box.");
- ezplotProj.ezset ("grid.");
- ezplotProj.addCurve (m_adPlotXAxis, detval, m_rProj.nDet());
+ ezplotProj.ezset ("box");
+ ezplotProj.ezset ("grid");
+ ezplotProj.addCurve (m_adPlotXAxis, adFilteredProj, m_nFilteredProjections);
pSGP->setTextPointSize (12);
ezplotProj.plot (pSGP);
- }
+
+}
#endif //HAVE_SGP
}