source: trunk/src/ATrous/B3SplineFilter.cc @ 1441

Last change on this file since 1441 was 1343, checked in by MatthewWhiting, 10 years ago

Fixing capitalisation of header file.

File size: 1.8 KB
Line 
1#include <duchamp/ATrous/B3SplineFilter.hh>
2#include <duchamp/ATrous/filter.hh>
3
4namespace duchamp {
5
6    B3SplineFilter::B3SplineFilter():
7    Filter()
8    {
9        const unsigned int filtersize=5;
10        double filter[filtersize] = {0.0625, 0.25, 0.375, 0.25, 0.0625};
11        this->filter1D = std::vector<double>(filter,filter+filtersize);
12        this->name = "B3 spline function";
13       
14        const unsigned int size1D=18;
15        this->maxNumScales[0] = size1D;
16        double sigmaFactors1D[size1D+1] =
17            {1.00000000000,7.23489806e-1,2.85450405e-1,1.77947535e-1,
18             1.22223156e-1,8.58113122e-2,6.05703043e-2,4.28107206e-2,
19             3.02684024e-2,2.14024008e-2,1.51336781e-2,1.07011079e-2,
20             7.56682272e-3,5.35055108e-3,3.78341085e-3,2.67527545e-3,
21             1.89170541e-3,1.33763772e-3,9.45852704e-4};
22
23        const unsigned int size2D=12;
24        this->maxNumScales[1] = size2D;
25        double sigmaFactors2D[size2D+1] =
26            {1.00000000000,8.90796310e-1,2.00663851e-1,8.55075048e-2,
27             4.12474444e-2,2.04249666e-2,1.01897592e-2,5.09204670e-3,
28             2.54566946e-3,1.27279050e-3,6.36389722e-4,3.18194170e-4,
29             1.59096999e-4};
30
31        const unsigned int size3D=7;
32        this->maxNumScales[2] = size3D;
33        double sigmaFactors3D[size3D+1] =
34            {1.00000000000,9.56543592e-1,1.20336499e-1,3.49500154e-2,
35             1.18164242e-2,4.13233507e-3,1.45703714e-3,5.14791120e-4};
36
37        this->sigmaFactors[0] = new std::vector<double>(sigmaFactors1D,sigmaFactors1D+this->maxNumScales[0]);
38        this->sigmaFactors[1] = new std::vector<double>(sigmaFactors2D,sigmaFactors2D+this->maxNumScales[1]);
39        this->sigmaFactors[2] = new std::vector<double>(sigmaFactors3D,sigmaFactors3D+this->maxNumScales[2]);
40
41    }
42
43    B3SplineFilter::B3SplineFilter(const B3SplineFilter& other):
44    Filter(other)
45    {
46    }
47
48    B3SplineFilter& B3SplineFilter::operator= (const B3SplineFilter& other)
49    {
50        if(this == &other) return *this;
51        ((Filter &) *this) = other;
52        return *this;
53    }
54
55}
Note: See TracBrowser for help on using the repository browser.