projects
/
ctsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r386: no message
[ctsim.git]
/
libctsim
/
projections.cpp
diff --git
a/libctsim/projections.cpp
b/libctsim/projections.cpp
index 3c4f956e891c6f0ab2a644703df81a84e3f74a8d..995c1649ec5327da84ad3890d3d6ad12e003b622 100644
(file)
--- a/
libctsim/projections.cpp
+++ b/
libctsim/projections.cpp
@@
-8,7
+8,7
@@
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: projections.cpp,v 1.
39 2001/01/07 22:53:3
6 kevin Exp $
+** $Id: projections.cpp,v 1.
43 2001/01/12 16:41:5
6 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
**
** 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
@@
-404,10
+404,16
@@
Projections::copyViewData (const std::string& filename, std::ostream& os, int st
bool
Projections::copyViewData (const char* const filename, std::ostream& os, int startView, int endView)
{
bool
Projections::copyViewData (const char* const filename, std::ostream& os, int startView, int endView)
{
- frnetorderstream is (filename,
ios::in |
ios::binary);
+ frnetorderstream is (filename,
std::ios::in | std::
ios::binary);
kuint16 sizeHeader, signature;
kuint32 _nView, _nDet;
kuint16 sizeHeader, signature;
kuint32 _nView, _nDet;
+ is.seekg (0);
+ if (is.fail()) {
+ sys_error (ERR_SEVERE, "Unable to read projection file %s", filename);
+ return false;
+ }
+
is.readInt16 (sizeHeader);
is.readInt16 (signature);
is.readInt32 (_nView);
is.readInt16 (sizeHeader);
is.readInt16 (signature);
is.readInt32 (_nView);
@@
-416,7
+422,7
@@
Projections::copyViewData (const char* const filename, std::ostream& os, int sta
int nDet = _nDet;
if (signature != m_signature) {
int nDet = _nDet;
if (signature != m_signature) {
- sys_error (ERR_
FATAL
, "Illegal signature in projection file %s", filename);
+ sys_error (ERR_
SEVERE
, "Illegal signature in projection file %s", filename);
return false;
}
return false;
}
@@
-446,9
+452,9
@@
Projections::copyViewData (const char* const filename, std::ostream& os, int sta
delete pViewData;
if (is.fail())
delete pViewData;
if (is.fail())
- sys_error (ERR_
FATAL
, "Error reading projection file");
+ sys_error (ERR_
SEVERE
, "Error reading projection file");
if (os.fail())
if (os.fail())
- sys_error (ERR_
FATAL
, "Error writing projection file");
+ sys_error (ERR_
SEVERE
, "Error writing projection file");
return (! (is.fail() | os.fail()));
}
return (! (is.fail() | os.fail()));
}
@@
-468,20
+474,20
@@
Projections::copyHeader (const char* const filename, std::ostream& os)
is.readInt16 (signature);
is.seekg (0);
if (signature != m_signature) {
is.readInt16 (signature);
is.seekg (0);
if (signature != m_signature) {
- sys_error (ERR_
FATAL
, "Illegal signature in projection file %s", filename);
+ sys_error (ERR_
SEVERE
, "Illegal signature in projection file %s", filename);
return false;
}
unsigned char* pHdrData = new unsigned char [sizeHeader];
is.read (reinterpret_cast<char*>(pHdrData), sizeHeader);
if (is.fail()) {
return false;
}
unsigned char* pHdrData = new unsigned char [sizeHeader];
is.read (reinterpret_cast<char*>(pHdrData), sizeHeader);
if (is.fail()) {
- sys_error (ERR_
FATAL
, "Error reading header");
+ sys_error (ERR_
SEVERE
, "Error reading header");
return false;
}
os.write (reinterpret_cast<char*>(pHdrData), sizeHeader);
if (os.fail()) {
return false;
}
os.write (reinterpret_cast<char*>(pHdrData), sizeHeader);
if (os.fail()) {
- sys_error (ERR_
FATAL
, "Error writing header");
+ sys_error (ERR_
SEVERE
, "Error writing header");
return false;
}
return false;
}
@@
-710,6
+716,9
@@
Projections::convertFFTPolar (ImageFile& rIF, int iInterpolationID, int iZeropad
if (! v || nx == 0 || ny == 0)
return false;
if (! v || nx == 0 || ny == 0)
return false;
+#ifndef HAVE_FFT
+ return false;
+#else
Array2d<double> adView (nx, ny);
Array2d<double> adDet (nx, ny);
double** ppdView = adView.getArray();
Array2d<double> adView (nx, ny);
Array2d<double> adDet (nx, ny);
double** ppdView = adView.getArray();
@@
-746,6
+755,7
@@
Projections::convertFFTPolar (ImageFile& rIF, int iInterpolationID, int iZeropad
delete [] ppcDetValue;
return true;
delete [] ppcDetValue;
return true;
+#endif
}
}
@@
-812,9
+822,9
@@
Projections::interpolatePolar (ImageFileArray& v, ImageFileArray& vImag,
v[ix][iy] = 0;
}
} else if (iInterpolationID == POLAR_INTERP_BILINEAR) {
v[ix][iy] = 0;
}
} else if (iInterpolationID == POLAR_INTERP_BILINEAR) {
- int iFloorView =
ppdView[ix][iy]
;
+ int iFloorView =
static_cast<int>(ppdView[ix][iy])
;
double dFracView = ppdView[ix][iy] - iFloorView;
double dFracView = ppdView[ix][iy] - iFloorView;
- int iFloorDet =
ppdDet[ix][iy]
;
+ int iFloorDet =
static_cast<int>(ppdDet[ix][iy])
;
double dFracDet = ppdDet[ix][iy] - iFloorDet;
if (iFloorDet >= 0 && iFloorView >= 0) {
double dFracDet = ppdDet[ix][iy] - iFloorDet;
if (iFloorDet >= 0 && iFloorView >= 0) {