| 18 | // -------------------------------------------------------------------------- |
| 19 | |
| 20 | void FBrief::meanValue(const std::vector<FBrief::pDescriptor>& descriptors, FBrief::TDescriptor& mean) { |
| 21 | mean.reset(); |
| 22 | |
| 23 | if (descriptors.empty()) return; |
| 24 | |
| 25 | const int N2 = descriptors.size() / 2; |
| 26 | |
| 27 | std::vector<int> counters(FBrief::L, 0); |
| 28 | |
| 29 | std::vector<FBrief::pDescriptor>::const_iterator it; |
| 30 | for (it = descriptors.begin(); it != descriptors.end(); ++it) { |
| 31 | const FBrief::TDescriptor& desc = **it; |
| 32 | for (int i = 0; i < FBrief::L; ++i) { |
| 33 | if (desc[i]) counters[i]++; |
| 34 | } |
| 35 | } |
| 36 | |
| 37 | for (int i = 0; i < FBrief::L; ++i) { |
| 38 | if (counters[i] > N2) mean.set(i); |
| 39 | } |
| 40 | } |
| 41 | |
| 42 | // -------------------------------------------------------------------------- |
| 43 | |