23 #ifndef SEGMENTATION_GEODESIC_HH 24 #define SEGMENTATION_GEODESIC_HH 42 #include <blitz/array.h> 52 #include <lmbs2kit/makeweights.h> 53 #include <lmbs2kit/cospmls.h> 54 #include <lmbs2kit/FST_semi_memo.h> 55 #include <lmbs2kit/csecond.h> 56 #include <lmbs2kit/primitive.h> 57 #include <lmbs2kit/naive_synthesis.h> 58 #include <lmbs2kit/seminaive.h> 59 #include <lmbs2kit/pmls.h> 80 template<
typename DataT,
int Dim>
82 blitz::Array<blitz::TinyVector<DataT,Dim>,Dim>
const &field,
83 blitz::TinyVector<double,Dim>
const &elementSizeUm,
84 blitz::TinyVector<double,Dim>
const ¢erUm,
85 blitz::Array<DataT,Dim> &result);
118 template<
typename DataT>
120 blitz::Array<blitz::TinyVector<DataT,3>,3>
const &edgeForce,
121 blitz::TinyVector<double,3>
const &elementSizeUm,
122 FrequencyArray &coeffs, blitz::TinyVector<double,3>
const &positionUm,
123 double radiusUm,
int bw,
double roundness,
int nIter,
double tau = 0.1,
142 blitz::TinyVector<double,3>
const &elementSizeUm,
143 blitz::TinyVector<double,3>
const ¢erUm);
156 blitz::Array<blitz::TinyVector< float, 3>, 3>
const &gvf,
157 blitz::TinyVector<float, 3>
const &elementSizeUm,
159 blitz::TinyVector<float, 3> positionUm,
float radiusUm,
160 int bw,
double roundness,
int num_iter,
175 blitz::Array<blitz::TinyVector< float, 3>, 3>
const &gvf,
176 blitz::TinyVector<float, 3>
const &el_size_um,
177 blitz::TinyVector<float, 3> best_center,
178 float best_radius,
int bandwidth,
double roundness,
179 int num_iter, blitz::Array<bool, 3> &mask,
180 blitz::Array<blitz::TinyVector< float, 3 >, 3> &normals,
185 #include "geodesic.icc" void radialProjection(blitz::Array< blitz::TinyVector< DataT, Dim >, Dim > const &field, blitz::TinyVector< double, Dim > const &elementSizeUm, blitz::TinyVector< double, Dim > const ¢erUm, blitz::Array< DataT, Dim > &result)
Project the elements of the given vector field to rays originating from the given center point...
blitz::Array< std::complex< double >, 1 > FrequencyArray
void generateMask(FrequencyArray const &coeffs, blitz::Array< bool, 3 > &mask, blitz::TinyVector< double, 3 > const &elementSizeUm, blitz::TinyVector< double, 3 > const ¢erUm)
Generate a binary mask being true inside the spherical function and false outside.
Classes and functions for sub-pixel Array access with different interpolation strategies.
void geodesic_sh(blitz::Array< blitz::TinyVector< float, 3 >, 3 > const &gvf, blitz::TinyVector< float, 3 > const &elementSizeUm, FrequencyArray &coeffs, blitz::TinyVector< float, 3 > positionUm, float radiusUm, int bw, double roundness, int num_iter, iRoCS::ProgressReporter *progress=NULL)
Geodesic Active contours.
void geodesicSH(blitz::Array< blitz::TinyVector< DataT, 3 >, 3 > const &edgeForce, blitz::TinyVector< double, 3 > const &elementSizeUm, FrequencyArray &coeffs, blitz::TinyVector< double, 3 > const &positionUm, double radiusUm, int bw, double roundness, int nIter, double tau=0.1, iRoCS::ProgressReporter *progress=NULL)
Evolve an active contour with spherical topology represented by a scalar spherical harmonic function...