aimstil  5.0.5
GaussianNormalizedCorrelation.h
Go to the documentation of this file.
1 #ifndef TIL_GAUSSIANNORMALIZEDCORRELATION_H
2 #define TIL_GAUSSIANNORMALIZEDCORRELATION_H
3 
4 
5 // includes from TIL library
6 #include "til/til_common.h"
7 #include "til/imageTools.h"
9 
10 // Namespace
11 
12 namespace til {
13 
14 
15 template <class TImage1, class TImage2 >
16 class GaussianNormalizedCorrelation : public NormalizedCorrelation<TImage1, TImage2>
17 {
18 public:
19 
20  // Constructors and destructor
21 
23  {
24  m_sigma[0] = m_sigma[1] = m_sigma[2] = (typename TImage2::value_type)(-1);
25  }
26 
28 
29 
30  void setKernelParameters(typename TImage2::value_type sigmaX,
31  typename TImage2::value_type sigmaY,
32  typename TImage2::value_type sigmaZ,
33  t_voxsize vx, t_voxsize vy, t_voxsize vz,
34  int sx=-1, int sy=-1, int sz=-1)
35  {
36  if (sigmaX < 0 || sigmaY < 0 || sigmaZ < 0)
37  {
38  //throw Exception("Sigma cannot be < 0");
39  }
40 
41  // If same parameters, don't do anything
42  // TODO: change to a float equality test?
43  if (m_sigma[0] == sigmaX &&
44  m_sigma[1] == sigmaY &&
45  m_sigma[2] == sigmaZ &&
46 
47  vx == this->getSecondImage().vdim()[0] &&
48  vy == this->getSecondImage().vdim()[1] &&
49  vz == this->getSecondImage().vdim()[2] )
50  {
51  return;
52  }
53 
54  TImage2 tmp;
56  sigmaX, sigmaY, sigmaZ,
57  vx, vy, vz,
58  sx, sy, sz);
59 
60  this->setSecondImage(tmp);
61  }
62 
63 
64 private:
65 
66  typename TImage2::value_type m_sigma[3];
67 
68 };
69 
70 } // namespace
71 
72 #endif
73 
Belongs to package Box Do not include directly, include til/Box.h instead.
Definition: Accumulator.h:10
General macros, definitions and functions.
Small miscellaneous utility functions for images.
float t_voxsize
type of voxel size
Definition: ImageBase.h:13
void generateGaussianKernel(TImage &kernel, double sigmaX, double sigmaY, double sigmaZ, t_voxsize vx, t_voxsize vy, t_voxsize vz, int sx, int sy, int sz)
Definition: imageTools.h:278
void setKernelParameters(typename TImage2::value_type sigmaX, typename TImage2::value_type sigmaY, typename TImage2::value_type sigmaZ, t_voxsize vx, t_voxsize vy, t_voxsize vz, int sx=-1, int sy=-1, int sz=-1)