Mercurial > hg > match-vamp
comparison src/FeatureConditioner.cpp @ 116:eed5f9594268 refactors
Add OutputDerivative, for completeness, & make DistanceMetric cope with negative feature values
author | Chris Cannam |
---|---|
date | Fri, 05 Dec 2014 10:05:31 +0000 |
parents | 593054bf6476 |
children | 8e240bbea845 |
comparison
equal
deleted
inserted
replaced
114:dc9cc3278636 | 116:eed5f9594268 |
---|---|
35 int size = feature.size(); | 35 int size = feature.size(); |
36 | 36 |
37 vector<double> out(size, 0.0); | 37 vector<double> out(size, 0.0); |
38 | 38 |
39 double totalEnergy = 0; | 39 double totalEnergy = 0; |
40 if (m_params.order == OutputRectifiedDerivative) { | 40 |
41 switch (m_params.order) { | |
42 | |
43 case OutputRectifiedDerivative: | |
41 for (int i = 0; i < size; i++) { | 44 for (int i = 0; i < size; i++) { |
42 totalEnergy += feature[i]; | 45 totalEnergy += feature[i]; |
43 if (feature[i] > m_prev[i]) { | 46 if (feature[i] > m_prev[i]) { |
44 out[i] = feature[i] - m_prev[i]; | 47 out[i] = feature[i] - m_prev[i]; |
45 } else { | 48 } else { |
46 out[i] = 0; | 49 out[i] = 0; |
47 } | 50 } |
48 } | 51 } |
49 } else { | 52 break; |
53 | |
54 case OutputDerivative: | |
50 for (int i = 0; i < size; i++) { | 55 for (int i = 0; i < size; i++) { |
56 totalEnergy += feature[i]; | |
57 out[i] = feature[i] - m_prev[i]; | |
58 } | |
59 break; | |
60 | |
61 case OutputFeatures: | |
62 for (int i = 0; i < size; i++) { | |
63 totalEnergy += feature[i]; | |
51 out[i] = feature[i]; | 64 out[i] = feature[i]; |
52 totalEnergy += out[i]; | |
53 } | 65 } |
66 break; | |
54 } | 67 } |
55 | 68 |
56 if (m_ltAverage == 0) { | 69 if (m_ltAverage == 0) { |
57 m_ltAverage = totalEnergy; | 70 m_ltAverage = totalEnergy; |
58 } else { | 71 } else { |