Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
MaximumCorrelation.cpp
1
#include "
MaximumCorrelation.h
"
2
#include "
Chip.h
"
3
#include "
MultivariateStatistics.h
"
4
5
namespace
Isis {
6
double
MaximumCorrelation::MatchAlgorithm
(
Chip
&pattern,
Chip
&subsearch) {
7
MultivariateStatistics
mv;
8
std::vector <double> pdn, sdn;
9
pdn.resize(pattern.
Samples
());
10
sdn.resize(pattern.
Samples
());
11
12
for
(
int
l = 1; l <= pattern.
Lines
(); l++) {
13
for
(
int
s = 1; s <= pattern.
Samples
(); s++) {
14
pdn[s-1] = pattern.
GetValue
(s, l);
15
sdn[s-1] = subsearch.
GetValue
(s, l);
16
}
17
mv.
AddData
(&pdn[0], &sdn[0], pattern.
Samples
());
18
}
19
double
percentValid = (double) mv.
ValidPixels
() /
20
(pattern.
Lines
() * pattern.
Samples
());
21
if
(percentValid * 100.0 < this->
PatternValidPercent
())
return
Isis::Null
;
22
23
double
r = mv.
Correlation
();
24
if
(r ==
Isis::Null
)
return
Isis::Null
;
25
return
fabs(r);
26
}
27
35
bool
MaximumCorrelation::CompareFits
(
double
fit1,
double
fit2) {
36
return
(fit1 >= fit2);
37
}
38
}
39
40
extern
"C"
Isis::AutoReg
*MaximumCorrelationPlugin(
Isis::Pvl
&pvl) {
41
return
new
Isis::MaximumCorrelation
(pvl);
42
}
43