4 #include "tnt/tnt_array2d.h" 5 #include "jama/jama_lu.h" 22 TNT::Array2D< std::complex<double> > Guu(nLine, nSamp);
23 TNT::Array2D< std::complex<double> > Guv(nLine, nSamp);
24 TNT::Array2D< std::complex<double> > Gvv(nLine, nSamp);
31 for(
int i = 0; i < Guu.dim1(); i++) {
32 std::vector< std::complex<double> > line1(Guu.dim2());
33 std::vector< std::complex<double> > line2(Guv.dim2());
34 std::vector< std::complex<double> > line3(Gvv.dim2());
38 for(
int j = 0; j < Guu.dim2(); j++) {
55 std::vector< std::complex<double> > transform1 = ft.
Transform(line1);
56 std::vector< std::complex<double> > transform2 = ft.
Transform(line2);
57 std::vector< std::complex<double> > transform3 = ft.
Transform(line3);
60 for(
int j = 0; j < Guu.dim2(); j++) {
61 Guu[i][j] = transform1[j];
62 Guv[i][j] = transform2[j];
63 Gvv[i][j] = transform3[j];
69 for(
int j = 0; j < Guu.dim2(); j++) {
70 std::vector< std::complex<double> > samp1(Guu.dim1());
71 std::vector< std::complex<double> > samp2(Guv.dim1());
72 std::vector< std::complex<double> > samp3(Gvv.dim1());
74 for(
int i = 0; i < Guu.dim1(); i++) {
80 std::vector< std::complex<double> > transform1 = ft.
Transform(samp1);
81 std::vector< std::complex<double> > transform2 = ft.
Transform(samp2);
82 std::vector< std::complex<double> > transform3 = ft.
Transform(samp3);
85 for(
int i = 0; i < Guu.dim1(); i++) {
86 Guu[i][j] = transform1[i];
87 Guv[i][j] = transform2[i];
88 Gvv[i][j] = transform3[i];
96 for(
int i = 0; i < Guu.dim1(); i++) {
97 std::vector< std::complex<double> > line(Guu.dim2());
99 for(
int j = 0; j < Guu.dim2(); j++) {
100 line[j] = Guu[i][j] * Guv[i][j] * Gvv[i][j];
103 std::vector< std::complex<double> > transform = ft.
Transform(line);
106 for(
int j = 0; j < Guu.dim2(); j++) {
107 Guu[i][j] = transform[j];
115 TNT::Array2D<double> N(chip.
Lines() - 1, chip.
Samples() - 1);
118 for(
int j = 0; j < N.dim2(); j++) {
119 std::vector< std::complex<double> > samp(Guu.dim1());
121 for(
int i = 0; i < Guu.dim1(); i++) {
125 std::vector< std::complex<double> > transform = ft.
Transform(samp);
128 for(
int i = 0; i < N.dim1(); i++) {
129 N[i][j] = real(transform[i]);
133 JAMA::LU<double> lu(N);
136 return abs(lu.det());
A small chip of data used for pattern matching.
virtual double Interest(Chip &chip)
This method returns the amount of interest for the given chip.
bool IsSpecial(const double d)
Returns if the input pixel is special.
Container for cube-like labels.
Forstner interest operator.
Namespace for ISIS/Bullet specific routines.
double GetValue(int sample, int line)
Loads a Chip with a value.