87
87
double maxContrast = 0.0;
88
88
// calc the eigenvalue sum.
89
89
double eigenValueSum = 0.0;
90
for(int i = 0; i < eigenPairs.size(); i++) {
90
for (int i = 0; i < eigenPairs.size(); i++) {
91
91
EigenPair eigenPair = eigenPairs.getEigenPair(i);
92
92
eigenValueSum += eigenPair.getEigenvalue();
94
94
double weakEigenvalue = eigenValueSum / eigenPairs.size() * walpha;
95
95
// now find the maximum contrast.
96
96
double currSum = eigenPairs.getEigenPair(eigenPairs.size() - 1).getEigenvalue();
97
for(int i = eigenPairs.size() - 2; i >= 0; i--) {
97
for (int i = eigenPairs.size() - 2; i >= 0; i--) {
98
98
EigenPair eigenPair = eigenPairs.getEigenPair(i);
99
99
currSum += eigenPair.getEigenvalue();
101
if(eigenPair.getEigenvalue() < weakEigenvalue) {
101
if (eigenPair.getEigenvalue() < weakEigenvalue) {
104
104
double contrast = eigenPair.getEigenvalue() / (currSum / (eigenPairs.size() - i));
105
if(contrast > maxContrast) {
105
if (contrast > maxContrast) {
106
106
maxContrast = contrast;
107
107
contrastMaximum = i;
111
for(int i = 0; i <= contrastMaximum /* && i < eigenPairs.size() */; i++) {
111
for (int i = 0; i <= contrastMaximum /* && i < eigenPairs.size() */; i++) {
112
112
EigenPair eigenPair = eigenPairs.getEigenPair(i);
113
113
strongEigenPairs.add(eigenPair);
115
for(int i = contrastMaximum + 1; i < eigenPairs.size(); i++) {
115
for (int i = contrastMaximum + 1; i < eigenPairs.size(); i++) {
116
116
EigenPair eigenPair = eigenPairs.getEigenPair(i);
117
117
weakEigenPairs.add(eigenPair);
134
134
protected void makeOptions(Parameterization config) {
135
135
super.makeOptions(config);
136
DoubleParameter walphaP = new DoubleParameter(WeakEigenPairFilter.EIGENPAIR_FILTER_WALPHA, new GreaterEqualConstraint(0.0), DEFAULT_WALPHA);
137
if(config.grab(walphaP)) {
136
DoubleParameter walphaP = new DoubleParameter(WeakEigenPairFilter.EIGENPAIR_FILTER_WALPHA, DEFAULT_WALPHA);
137
walphaP.addConstraint(new GreaterEqualConstraint(0.0));
138
if (config.grab(walphaP)) {
138
139
walpha = walphaP.getValue();