CTL  0.6.1
Computed Tomography Library
diff.h
Go to the documentation of this file.
1 #ifndef CTL_DIFF_H
2 #define CTL_DIFF_H
3 
4 typedef unsigned int uint;
5 
6 namespace CTL {
7 
8 template <typename T>
9 class Chunk2D;
10 template <typename T>
11 class VoxelVolume;
12 
13 namespace imgproc {
14 
15 enum DiffMethod { // diff enum has to have negative values (non-negative are reserved for filter)
16  CentralDifference = -1, // filter size: 3
17  DifferenceToNext = -2, // filter size: 2
18  SavitzkyGolay5 = -3, // filter size: 5
19  SavitzkyGolay7 = -4, // filter size: 7
20  SpectralGauss3 = -5, // filter size: 15
21  SpectralGauss5 = -6, // filter size: 7
22  SpectralGauss7 = -7, // filter size: 7
23  SpectralGauss9 = -8, // filter size: 9
24  SpectralCosine = -9, // filter size: 11
25 };
26 
27 // partial derivatives
28 template <uint dim>
29 void diff(Chunk2D<float>& image, DiffMethod m = CentralDifference);
30 template <uint dim>
31 void diff(Chunk2D<double>& image, DiffMethod m = CentralDifference);
32 
33 template <uint dim>
34 void diff(VoxelVolume<float>& volume, DiffMethod m = CentralDifference);
35 template <uint dim>
36 void diff(VoxelVolume<double>& volume, DiffMethod m = CentralDifference);
37 
38 // available specializations (explicit instantiation declaration)
39 extern template void diff<0u>(Chunk2D<float>& image, DiffMethod m);
40 extern template void diff<1u>(Chunk2D<float>& image, DiffMethod m);
41 extern template void diff<0u>(Chunk2D<double>& image, DiffMethod m);
42 extern template void diff<1u>(Chunk2D<double>& image, DiffMethod m);
43 
44 extern template void diff<0u>(VoxelVolume<float>& volume, DiffMethod m);
45 extern template void diff<1u>(VoxelVolume<float>& volume, DiffMethod m);
46 extern template void diff<2u>(VoxelVolume<float>& volume, DiffMethod m);
47 extern template void diff<0u>(VoxelVolume<double>& volume, DiffMethod m);
48 extern template void diff<1u>(VoxelVolume<double>& volume, DiffMethod m);
49 extern template void diff<2u>(VoxelVolume<double>& volume, DiffMethod m);
50 
51 } // namespace imgproc
52 } // namespace CTL
53 
55 
58 
59 #endif // CTL_DIFF_H
Definition: diff.h:22
Definition: diff.h:16
DiffMethod
Definition: diff.h:15
Definition: diff.h:24
unsigned int uint
Alias for unsigned int.
Definition: diff.h:4
Definition: diff.h:23
Definition: diff.h:18
Definition: diff.h:20
Definition: diff.h:21
Definition: diff.h:19
Definition: diff.h:17