X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=libctsim%2Freconstruct.cpp;h=e80cc4f26d37ade26d0bd27ef0d37a89aab0b736;hb=82ea0c94394a5a175b260160760155a6686203a1;hp=4b1b4a81b4b0a40b0f16ed786a0a107180feb3db;hpb=9f29c8b32c972db1178d6f8551d5cd57ceb67083;p=ctsim.git diff --git a/libctsim/reconstruct.cpp b/libctsim/reconstruct.cpp index 4b1b4a8..e80cc4f 100644 --- a/libctsim/reconstruct.cpp +++ b/libctsim/reconstruct.cpp @@ -8,7 +8,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: reconstruct.cpp,v 1.9 2001/01/28 19:10:18 kevin Exp $ +** $Id: reconstruct.cpp,v 1.12 2001/02/11 04:56:37 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 @@ -49,8 +49,12 @@ */ -Reconstructor::Reconstructor (const Projections& rProj, ImageFile& rIF, const char* const filterName, double filt_param, const char* const filterMethodName, const int zeropad, const char* filterGenerationName, const char* const interpName, int interpFactor, const char* const backprojectName, const int iTrace, SGP* pSGP) - : m_rProj(rProj), m_rImagefile(rIF), m_pProcessSignal(0), m_pBackprojector(0), m_iTrace(iTrace), m_bFail(false), m_adPlotXAxis(0) +Reconstructor::Reconstructor (const Projections& rProj, ImageFile& rIF, const char* const filterName, + double filt_param, const char* const filterMethodName, const int zeropad, + const char* filterGenerationName, const char* const interpName, + int interpFactor, const char* const backprojectName, const int iTrace, SGP* pSGP) + : m_rProj(rProj), m_rImagefile(rIF), m_pProcessSignal(0), m_pBackprojector(0), m_iTrace(iTrace), + m_bFail(false), m_adPlotXAxis(0) { m_nFilteredProjections = m_rProj.nDet() * interpFactor; @@ -65,7 +69,9 @@ Reconstructor::Reconstructor (const Projections& rProj, ImageFile& rIF, const ch #endif 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_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); if (m_pProcessSignal->fail()) { m_bFail = true; @@ -138,7 +144,7 @@ Reconstructor::reconstructAllViews () void -Reconstructor::reconstructView (int iStartView, int iViewCount, SGP* pSGP, bool bBackprojectView) +Reconstructor::reconstructView (int iStartView, int iViewCount, SGP* pSGP, bool bBackprojectView, double dGraphWidth) { double* adFilteredProj = new double [m_nFilteredProjections]; // filtered projections @@ -173,31 +179,37 @@ Reconstructor::reconstructView (int iStartView, int iViewCount, SGP* pSGP, bool if (m_iTrace >= Trace::TRACE_PLOT && pSGP) { EZPlot ezplotProj; + std::ostringstream osXLength; + osXLength << "xlength " << dGraphWidth; + ezplotProj.ezset ("clear"); - ezplotProj.ezset ("title Raw Projection"); + ezplotProj.ezset ("title Filtered Projection"); ezplotProj.ezset ("xticks major 5"); ezplotProj.ezset ("xlabel "); ezplotProj.ezset ("ylabel "); - ezplotProj.ezset ("yporigin 0.1"); + ezplotProj.ezset ("yticks major 5"); + ezplotProj.ezset ("yporigin 0.10"); ezplotProj.ezset ("ylength 0.45"); - ezplotProj.ezset ("xlength 0.66"); - ezplotProj.ezset ("box."); - ezplotProj.ezset ("grid."); - ezplotProj.addCurve (m_adPlotXAxis, detval, m_rProj.nDet()); - pSGP->setTextPointSize(12); + ezplotProj.ezset (osXLength.str().c_str()); + ezplotProj.ezset ("box"); + ezplotProj.ezset ("grid"); + ezplotProj.addCurve (m_adPlotXAxis, adFilteredProj, m_nFilteredProjections); + pSGP->setTextPointSize (12); ezplotProj.plot (pSGP); + 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 ("yporigin 0.55"); ezplotProj.ezset ("ylength 0.45"); - ezplotProj.ezset ("xlength 0.66"); - ezplotProj.ezset ("box"); - ezplotProj.ezset ("grid"); - ezplotProj.addCurve (m_adPlotXAxis, adFilteredProj, m_nFilteredProjections); - pSGP->setTextPointSize(12); + ezplotProj.ezset (osXLength.str().c_str()); + ezplotProj.ezset ("box."); + ezplotProj.ezset ("grid."); + ezplotProj.addCurve (m_adPlotXAxis, detval, m_rProj.nDet()); + pSGP->setTextPointSize (12); ezplotProj.plot (pSGP); } #endif //HAVE_SGP