X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=libctsim%2Fimagefile.cpp;h=c3d2f67896820bd65fec117fad0b3958cb4b0c11;hb=6435258bbafabf9a4ce4445edfd97f771318eb6d;hp=7f1c6a03085a2f9e51a50f32872becbff5296f2b;hpb=08f34bf3ba14d4f436f4d2ef0ee5af1d6eb266ac;p=ctsim.git diff --git a/libctsim/imagefile.cpp b/libctsim/imagefile.cpp index 7f1c6a0..c3d2f67 100644 --- a/libctsim/imagefile.cpp +++ b/libctsim/imagefile.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: imagefile.cpp,v 1.4 2000/06/25 17:32:24 kevin Exp $ +** $Id: imagefile.cpp,v 1.6 2000/06/28 15:25:34 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 @@ -28,75 +28,12 @@ #include "ct.h" -/////////////////////////////////////////////////////////////////////////// -// CLASS IMPLEMENTATION -// -// Name: Array2dFileLabel -// Purpose: Labels for Array2dFiles -/////////////////////////////////////////////////////////////////////////// - -void -Array2dFileLabel::init (void) -{ - m_calcTime = 0; - m_labelType = L_EMPTY; - TIMEDATE td; - td_get_tmdt (&td); - m_year = td.d.year; - m_month = td.d.month; - m_day = td.d.date; - m_hour = td.t.hour; - m_minute = td.t.minute; - m_second = td.t.second; -} - -Array2dFileLabel::Array2dFileLabel() -{ - init(); -} - -Array2dFileLabel::Array2dFileLabel(const char* const str, double ctime = 0.) - : m_strLabel (str) -{ - init(); - - m_labelType = L_USER; - m_calcTime = ctime; -} - -Array2dFileLabel::Array2dFileLabel(const int type, const char* const str, double ctime = 0.) - : m_strLabel (str) -{ - init(); - - m_labelType = type; - m_calcTime = ctime; -} - -Array2dFileLabel::~Array2dFileLabel() -{ -} - -const string& -Array2dFileLabel::getDateString (void) const -{ - ostringstream oss; - oss << m_month <<"/"<< m_day <<"/"<< m_year << " " << m_hour <<":"<< m_minute <<":"<< m_second; - m_strDate = oss.str(); - return m_strDate; -} - - -/* FILE - * image.c Routines for managing images - */ - void ImageFile::filterResponse (const char* const domainName, double bw, const char* const filterName, double filt_param) { - int hx = (mNX - 1) / 2; - int hy = (mNY - 1) / 2; + int hx = (m_nx - 1) / 2; + int hy = (m_ny - 1) / 2; ImageFileArray v = getArray(); SignalFilter filter (filterName, domainName, bw, filt_param); @@ -112,9 +49,9 @@ ImageFile::filterResponse (const char* const domainName, double bw, const char* int ImageFile::display (void) { - ImageFileValue pmin, pmax; + double pmin, pmax; - getPixelValueRange (pmin, pmax); + // getPixelValueRange (pmin, pmax); return (displayScaling (1, pmin, pmax)); } @@ -123,8 +60,8 @@ int ImageFile::displayScaling (const int scale, const ImageFileValue pmin, const ImageFileValue pmax) { int grayscale[256]; - int nx = mNX; - int ny = mNY; + int nx = m_nx; + int ny = m_ny; ImageFileArray v = getArray(); #if HAVE_G2_H @@ -171,27 +108,27 @@ ImageFile::displayScaling (const int scale, const ImageFileValue pmin, const Ima bool ImageFile::comparativeStatistics (const ImageFile& imComp, double& d, double& r, double& e) const { - if (imComp.nx() != mNX && imComp.ny() != mNY) { + if (imComp.nx() != m_nx && imComp.ny() != m_ny) { sys_error (ERR_WARNING, "Image sizes differ [ImageFile::comparativeStatistics]"); return false; } - ImageFileArray v = getArray(); - ImageFileArray vComp = imComp.getArray(); + ImageFileArrayConst v = getArray(); + ImageFileArrayConst vComp = imComp.getArray(); double myMean = 0.; - for (int ix = 0; ix < mNX; ix++) { - for (int iy = 0; iy < mNY; iy++) { + for (int ix = 0; ix < m_nx; ix++) { + for (int iy = 0; iy < m_ny; iy++) { myMean += v[ix][iy]; } } - myMean /= (mNX * mNY); + myMean /= (m_nx * m_ny); double sqErrorSum = 0.; double absErrorSum = 0.; double sqDiffFromMeanSum = 0.; double absValueSum = 0.; - for (int ix = 0; ix < mNX; ix++) { - for (int iy = 0; iy < mNY; iy++) { + for (int ix = 0; ix < m_nx; ix++) { + for (int iy = 0; iy < m_ny; iy++) { double diff = v[ix][iy] - vComp[ix][iy]; sqErrorSum += diff * diff; absErrorSum += fabs(diff); @@ -204,8 +141,8 @@ ImageFile::comparativeStatistics (const ImageFile& imComp, double& d, double& r, d = sqrt (sqErrorSum / sqDiffFromMeanSum); r = absErrorSum / absValueSum; - int hx = mNX / 2; - int hy = mNY / 2; + int hx = m_nx / 2; + int hy = m_ny / 2; double eMax = -1; for (int ix = 0; ix < hx; ix++) { for (int iy = 0; iy < hy; iy++) { @@ -255,9 +192,9 @@ ImageFile::printStatistics (ostream& os) const void ImageFile::statistics (double& min, double& max, double& mean, double& mode, double& median, double& stddev) const { - int nx = mNX; - int ny = mNY; - ImageFileArray v = getArray(); + int nx = m_nx; + int ny = m_ny; + ImageFileArrayConst v = getArray(); mean = 0; min = v[0][0];