Commit ab191399edb40dcc03b2f9a57a9f458b2e1bcabe
1 parent
54a81a89
removed metadata distance
Showing
1 changed file
with
0 additions
and
76 deletions
openbr/plugins/distance/metadata.cpp deleted
| 1 | -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | |
| 2 | - * Copyright 2012 The MITRE Corporation * | |
| 3 | - * * | |
| 4 | - * Licensed under the Apache License, Version 2.0 (the "License"); * | |
| 5 | - * you may not use this file except in compliance with the License. * | |
| 6 | - * You may obtain a copy of the License at * | |
| 7 | - * * | |
| 8 | - * http://www.apache.org/licenses/LICENSE-2.0 * | |
| 9 | - * * | |
| 10 | - * Unless required by applicable law or agreed to in writing, software * | |
| 11 | - * distributed under the License is distributed on an "AS IS" BASIS, * | |
| 12 | - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * | |
| 13 | - * See the License for the specific language governing permissions and * | |
| 14 | - * limitations under the License. * | |
| 15 | - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | |
| 16 | - | |
| 17 | -#include <openbr/plugins/openbr_internal.h> | |
| 18 | -#include <openbr/core/qtutils.h> | |
| 19 | - | |
| 20 | -namespace br | |
| 21 | -{ | |
| 22 | - | |
| 23 | -/*! | |
| 24 | - * \ingroup distances | |
| 25 | - * \brief Checks target metadata against query metadata. | |
| 26 | - * \author Scott Klum \cite sklum | |
| 27 | - */ | |
| 28 | -class MetadataDistance : public UntrainableDistance | |
| 29 | -{ | |
| 30 | - Q_OBJECT | |
| 31 | - | |
| 32 | - Q_PROPERTY(QStringList filters READ get_filters WRITE set_filters RESET reset_filters STORED false) | |
| 33 | - BR_PROPERTY(QStringList, filters, QStringList()) | |
| 34 | - | |
| 35 | - float compare(const Template &a, const Template &b) const | |
| 36 | - { | |
| 37 | - foreach (const QString &key, filters) { | |
| 38 | - QString aValue = a.file.get<QString>(key, QString()); | |
| 39 | - QString bValue = b.file.get<QString>(key, QString()); | |
| 40 | - | |
| 41 | - // The query value may be a range. Let's check. | |
| 42 | - if (bValue.isEmpty()) bValue = QtUtils::toString(b.file.get<QPointF>(key, QPointF())); | |
| 43 | - | |
| 44 | - if (aValue.isEmpty() || bValue.isEmpty()) continue; | |
| 45 | - | |
| 46 | - bool keep = false; | |
| 47 | - bool ok; | |
| 48 | - | |
| 49 | - QPointF range = QtUtils::toPoint(bValue,&ok); | |
| 50 | - | |
| 51 | - if (ok) /* Range */ { | |
| 52 | - int value = range.x(); | |
| 53 | - int upperBound = range.y(); | |
| 54 | - | |
| 55 | - while (value <= upperBound) { | |
| 56 | - if (aValue == QString::number(value)) { | |
| 57 | - keep = true; | |
| 58 | - break; | |
| 59 | - } | |
| 60 | - value++; | |
| 61 | - } | |
| 62 | - } | |
| 63 | - else if (aValue == bValue) keep = true; | |
| 64 | - | |
| 65 | - if (!keep) return -std::numeric_limits<float>::max(); | |
| 66 | - } | |
| 67 | - return 0; | |
| 68 | - } | |
| 69 | -}; | |
| 70 | - | |
| 71 | - | |
| 72 | -BR_REGISTER(Distance, MetadataDistance) | |
| 73 | - | |
| 74 | -} // namespace br | |
| 75 | - | |
| 76 | -#include "distance/metadata.moc" |