From 595e63c804284d460ce4d032c3848b75bc57186d Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Mon, 19 Jun 2000 20:08:09 +0000 Subject: [PATCH] r114: *** empty log message *** --- include/phantom.h | 14 ++++++++------ libctsim/phantom.cpp | 44 ++++++++++++++++++++++---------------------- src/phm2if.cpp | 6 +++--- 3 files changed, 33 insertions(+), 31 deletions(-) diff --git a/include/phantom.h b/include/phantom.h index 21b08c4..32eedf6 100644 --- a/include/phantom.h +++ b/include/phantom.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: phantom.h,v 1.1 2000/06/19 18:45:36 kevin Exp $ +** $Id: phantom.h,v 1.2 2000/06/19 20:08:09 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 @@ -137,18 +137,20 @@ class Phantom void addPElem (const char* const composition, const double cx, const double cy, const double u, const double v, const double rot, const double atten); - void print (void) const; + void convertToImagefile (ImageFile& im, const int in_nsample, const int trace, const int colStart, const int colCount) const; + + void convertToImagefile (ImageFile& im, const int in_nsample, const int trace) const; #if HAVE_SGP void show (void) const; void draw (void) const; #endif - void std_herman (void); + void addStdHerman (void); + void addStdRowland (void); + void addStdRowlandBordered (void); - void std_rowland (void); - - void std_rowland_bordered (void); + void print (void) const; const double maxAxisLength (void) const {return (((m_xmax - m_xmin) > (m_ymax - m_ymin)) ? (m_xmax - m_xmin) : (m_ymax - m_ymin));} diff --git a/libctsim/phantom.cpp b/libctsim/phantom.cpp index e28074f..ec5d0dc 100644 --- a/libctsim/phantom.cpp +++ b/libctsim/phantom.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: phantom.cpp,v 1.2 2000/06/19 19:54:23 kevin Exp $ +** $Id: phantom.cpp,v 1.3 2000/06/19 20:08:09 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 @@ -58,13 +58,13 @@ Phantom::create (const int phmid) switch (phmid) { case O_PHM_HERMAN: - std_herman(); + addStdHerman(); break; case O_PHM_ROWLAND: - std_rowland(); + addStdRowland(); break; case O_PHM_BROWLAND: - std_rowland_bordered (); + addStdRowlandBordered (); break; case O_PHM_UNITPULSE: m_composition = P_UNIT_PULSE; @@ -238,21 +238,18 @@ Phantom::show (void) const * draw () */ -#ifdef HAVE_SGP void Phantom::draw (void) const { +#ifdef HAVE_SGP for (PElemIterator i = m_listPElem.begin(); i != m_listPElem.end(); i++) sgp2_polyline_abs ((*i)->xOutline(), (*i)->yOutline(), (*i)->nOutlinePoints()); -} #endif +} /* NAME - * std_rowland Make head phantom of S.W. Rowland - * - * SYNOPSIS - * std_rowland () + * addStdRowland Make head phantom of S.W. Rowland * * REFERENCES * S. W. Rowland, "Computer Implementation of Image Reconstruction @@ -261,7 +258,7 @@ Phantom::draw (void) const */ void -Phantom::std_rowland (void) +Phantom::addStdRowland (void) { addPElem("ellipse", 0.0000, 0.0000, 0.6900, 0.9200, 0.0, 1.00); addPElem("ellipse", 0.0000, -0.0184, 0.6624, 0.8740, 0.0, -0.98); @@ -277,17 +274,14 @@ Phantom::std_rowland (void) } void -Phantom::std_rowland_bordered (void) +Phantom::addStdRowlandBordered (void) { - std_rowland (); + addStdRowland (); addPElem ("ellipse", 0.000, 0.0000, 0.7500, 1.000, 0.0, 0.00); } /* NAME - * std_herman Standard head phantom of G. T. Herman - * - * SYNOPSIS - * std_herman () + * addStdHerman Standard head phantom of G. T. Herman * * REFERENCES * G. T. Herman, "Image Reconstructions from Projections: The Fundementals @@ -295,7 +289,7 @@ Phantom::std_rowland_bordered (void) */ void -Phantom::std_herman (void) +Phantom::addStdHerman (void) { addPElem("ellipse", 0.000, 1.50, 0.375, 0.3000, 90.00, -0.003); addPElem("ellipse", 0.675, -0.75, 0.225, 0.1500, 140.00, 0.010); @@ -326,18 +320,24 @@ Phantom::std_herman (void) * (total samples per pixel = nsample * nsample) */ +void +Phantom::convertToImagefile (ImageFile& im, const int in_nsample, const int trace) const +{ + convertToImagefile (im, in_nsample, trace, 0, im.nx()); +} + void -Phantom::convertToImagefile (ImageFile& im, const int colStart, const int colCount, const int in_nsample, const int trace) const +Phantom::convertToImagefile (ImageFile& im, const int in_nsample, const int trace, const int colStart, const int colCount) const { int nx = im.nx(); int ny = im.ny(); if (nx < 2 || ny < 2) return; + int nsample = in_nsample; if (nsample < 1) - nsample = 1; + nsample = 1; - int nsample = in_nsample; double dx = m_xmax - m_xmin; double dy = m_ymax - m_ymin; double xcent = m_xmin + dx / 2; @@ -369,7 +369,7 @@ Phantom::convertToImagefile (ImageFile& im, const int colStart, const int colCou ImageFileArray v = im.getArray(); double x_start = xmin + (colStart * xinc); - for (PElemConstIterator pelem = m_listPElem.begin; pelem != m_listPElem.end; pelem++) { + for (PElemConstIterator pelem = m_listPElem.begin(); pelem != m_listPElem.end(); pelem++) { double x, y, xi, yi; int ix, iy, kx, ky; for (ix = 0, x = x_start; ix < colCount; ix++, x += xinc) { diff --git a/src/phm2if.cpp b/src/phm2if.cpp index 0eb5c9e..60e504b 100644 --- a/src/phm2if.cpp +++ b/src/phm2if.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: phm2if.cpp,v 1.11 2000/06/19 17:58:13 kevin Exp $ +** $Id: phm2if.cpp,v 1.12 2000/06/19 20:08:09 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 @@ -324,7 +324,7 @@ phm2if_main (int argc, char* argv[]) } } else { TimerCollectiveMPI timerRasterize (mpiWorld.getComm()); - phm_to_imagefile (phm, *imLocal, mpiWorld.getMyStartWorkUnit(), mpiWorld.getMyLocalWorkUnits(), opt_nsample, opt_trace); + phm.convertToImagefile (*imLocal, opt_nsample, opt_trace, mpiWorld.getMyStartWorkUnit(), mpiWorld.getMyLocalWorkUnits()); if (opt_verbose) timerRasterize.timerEndAndReport ("Time to rasterize phantom"); @@ -344,7 +344,7 @@ phm2if_main (int argc, char* argv[]) if (opt_trace >= TRACE_PHM) phm.show(); #endif - phm_to_imagefile (phm, *imGlobal, 0, opt_nx, opt_nsample, opt_trace); + phm.convertToImagefile (*imGlobal, opt_nsample, opt_trace); } #endif -- 2.34.1