-
Mark Jenkinson authoredMark Jenkinson authored
Volume.h 2.08 KiB
/* Volume.h
Mark Woolrich, FMRIB Image Analysis Group
Copyright (C) 1999-2000 University of Oxford */
/* CCOPYRIGHT */
#if !defined(__Volume_h)
#define __Volume_h
#include <iostream>
#include <fstream>
#define WANT_STREAM
#define WANT_MATH
#include "newmatap.h"
#include "newmatio.h"
#include "VolumeSeries.h"
#include <string>
using namespace NEWMAT;
namespace FILM {
class Volume : public ColumnVector
{
public:
Volume() : ColumnVector() {}
Volume(const VolumeSeries::Dims& pdims, const ColumnVector& in) :
ColumnVector(),
dims(pdims),
preThresholdPositions(in)
{}
Volume(int psize) : ColumnVector (psize) {}
Volume(int psize,const VolumeSeries::Dims& pdims, const ColumnVector& in) :
ColumnVector (psize),
dims(pdims),
preThresholdPositions(in){}
Volume& operator=(const Volume& vol) {
ColumnVector::operator=(vol);
preThresholdPositions = vol.preThresholdPositions;
dims = vol.dims;
return *this;
}
Volume& operator=(const ColumnVector& pvec) {
ColumnVector::operator=(pvec);
return *this;
}
Volume& operator=(float pin) {
ColumnVector::operator=(pin);
return *this;
}
Volume(const ColumnVector& pvec) {ColumnVector::operator=(pvec);}
void read(const string& fname);
void threshold(float thresh);
void threshold();
void unthreshold();
void unthreshold(const VolumeSeries::Dims& pdims, const ColumnVector& in);
void writeAsInt(const string& fname);
void writeAsFloat(const string& fname);
const VolumeSeries::Dims& getDims() const { return dims; }
void setDims(const VolumeSeries::Dims& pdims) { dims = pdims; }
int getUnthresholdSize() const { return dims.x*dims.y*dims.z; }
int getVolumeSize() const { return Nrows(); }
const ColumnVector& getPreThresholdPositions() const { return preThresholdPositions; }
void setPreThresholdPositions(const ColumnVector& in) { preThresholdPositions = in; }
protected:
VolumeSeries::Dims dims;
ColumnVector preThresholdPositions;
};
}
#endif