42 #include <blitz/array.h> 147 void fit(blitz::TinyVector<double,3>
const &qcPositionUm,
148 std::list<Nucleus>
const &nuclei,
149 double kappa = 1.0,
double lambda = 0.0,
double mu = 0.0,
150 int nIter = 1000,
double tau = 0.1,
double searchRadiusUm = 0.0);
195 void fit(blitz::TinyVector<double,3>
const &qcPositionUm,
196 std::vector<Nucleus>
const &nuclei,
197 double kappa = 1.0,
double lambda = 0.0,
double mu = 0.0,
198 int nIter = 1000,
double tau = 0.1,
double searchRadiusUm = 0.0);
243 void fit(blitz::TinyVector<double,3>
const &qcPositionUm,
245 double kappa = 1.0,
double lambda = 0.0,
double mu = 0.0,
246 int nIter = 1000,
double tau = 0.1,
double searchRadiusUm = 0.0);
290 void fit(blitz::TinyVector<double,3>
const &qcPositionUm,
291 std::vector< blitz::TinyVector<double,3> > &positionsUm,
292 double kappa = 1.0,
double lambda = 0.0,
double mu = 0.0,
293 int nIter = 1000,
double tau = 0.1,
double searchRadiusUm = 0.0);
307 blitz::TinyVector<double,3>
const &pos)
const;
336 blitz::TinyVector<double,3>
const &coordinates)
const;
353 template<
typename DataT>
355 blitz::Array<DataT,3>
const &data,
356 blitz::TinyVector<double,3>
const &originalElementSizeUm,
357 blitz::Array<DataT,3> &straightened,
358 blitz::TinyVector<double,3>
const &straightenedElementSizeUm,
359 blitz::TinyVector<double,3>
const &originUm,
double phiOffset)
const;
373 blitz::Array<blitz::TinyVector<double,3>,1> &
vertices();
374 blitz::Array<blitz::TinyVector<ptrdiff_t,3>,1> &
indices();
375 blitz::Array<blitz::TinyVector<double,3>,1> &
normals();
377 void save(std::string
const &fileName, std::string
const &groupName,
378 bool throwErrors =
false)
const;
379 void load(std::string
const &fileName, std::string
const &groupName,
380 bool throwErrors =
false);
387 void extractBoundary();
388 void computeTransformation();
390 void fitEpidermalQuadricRANSAC();
395 double _kappa, _lambda, _mu, _tau, _searchRadiusUm;
398 blitz::TinyMatrix<double,4,4> _trafo, _trafoInv;
399 blitz::TinyVector<double,3> _qcPos;
402 ptrdiff_t _nLatitudes, _nLongitudes;
403 blitz::Array<blitz::TinyVector<double,3>,1> _vertices;
404 blitz::Array<blitz::TinyVector<ptrdiff_t,3>,1> _indices;
405 blitz::Array<blitz::TinyVector<double,3>,1> _normals;
407 double* p_curveLengthCache;
void save(std::string const &fileName, std::string const &groupName, bool throwErrors=false) const
Array class derived from blitz++ Arrays for handling microscopic datasets with associated element siz...
The BSpline class provides functions for fitting B-Splines to point clouds and evaluating them at arb...
The IRoCS class provides means to attach iRoCS to different kinds of processed root images...
blitz::TinyVector< double, 3 > getCoordinates(blitz::TinyVector< double, 3 > const &pos) const
Get the iRoCS position for the given image position in micrometers.
double thickness(double u) const
BSpline< double > const & thicknessSpline() const
Lightweight alternative to libBlitzHDF5 providing its basic functionality.
blitz::Array< blitz::TinyVector< ptrdiff_t, 3 >, 1 > & indices()
BSpline< blitz::TinyVector< double, 3 > > const & axisSpline() const
double getDistanceToSurface(blitz::TinyVector< double, 3 > const &pos) const
Get the signed euclidean distance of the given point to the tubular surface.
Nucleus class containing cell nucelus specific parameters.
void computeStraightenedView(blitz::Array< DataT, 3 > const &data, blitz::TinyVector< double, 3 > const &originalElementSizeUm, blitz::Array< DataT, 3 > &straightened, blitz::TinyVector< double, 3 > const &straightenedElementSizeUm, blitz::TinyVector< double, 3 > const &originUm, double phiOffset) const
Compute a straightened view of the given dataset according to this iRoCS instance.
IRoCS(iRoCS::ProgressReporter *progressReporter=NULL)
Default constructor.
void setProgressReporter(iRoCS::ProgressReporter *progressReporter)
Attach a iRoCS::ProgressReporter through which progress will be output.
Classes and functions for sub-pixel Array access with different interpolation strategies.
blitz::Array< blitz::TinyVector< double, 3 >, 1 > & normals()
blitz::TinyMatrix< double, 4, 4 > const & normalizationTransformation() const
blitz::TinyVector< double, 3 > getAxisPosition(double u) const
void load(std::string const &fileName, std::string const &groupName, bool throwErrors=false)
blitz::TinyVector< double, 3 > getEuclideanPositionUm(blitz::TinyVector< double, 3 > const &coordinates) const
Get the euclidean position in micrometers for the given iRoCS coordinate vector.
blitz::Array< blitz::TinyVector< double, 3 >, 1 > & vertices()
void fit(blitz::TinyVector< double, 3 > const &qcPositionUm, std::list< Nucleus > const &nuclei, double kappa=1.0, double lambda=0.0, double mu=0.0, int nIter=1000, double tau=0.1, double searchRadiusUm=0.0)
Fit iRoCS to a given list of nuclei.
blitz::TinyMatrix< double, 4, 4 > const & inverseNormalizationTransformation() const
CoupledBSplineModel< 3 > const & ccm() const