Commit 169c866a73f3d128572af7d32037c1d887f4c7c4
1 parent
f72a4fb4
removed heatmap distance
Showing
1 changed file
with
0 additions
and
100 deletions
openbr/plugins/distance/heatmap.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 | - | ||
| 19 | -namespace br | ||
| 20 | -{ | ||
| 21 | - | ||
| 22 | -/*! | ||
| 23 | - * \ingroup distances | ||
| 24 | - * \brief 1v1 heat map comparison | ||
| 25 | - * \author Scott Klum \cite sklum | ||
| 26 | - */ | ||
| 27 | -class HeatMapDistance : public Distance | ||
| 28 | -{ | ||
| 29 | - Q_OBJECT | ||
| 30 | - Q_PROPERTY(QString description READ get_description WRITE set_description RESET reset_description STORED false) | ||
| 31 | - Q_PROPERTY(int step READ get_step WRITE set_step RESET reset_step STORED false) | ||
| 32 | - Q_PROPERTY(QString inputVariable READ get_inputVariable WRITE set_inputVariable RESET reset_inputVariable STORED false) | ||
| 33 | - BR_PROPERTY(QString, description, "IdenticalDistance") | ||
| 34 | - BR_PROPERTY(int, step, 1) | ||
| 35 | - BR_PROPERTY(QString, inputVariable, "Label") | ||
| 36 | - | ||
| 37 | - QList<br::Distance*> distances; | ||
| 38 | - | ||
| 39 | - void train(const TemplateList &src) | ||
| 40 | - { | ||
| 41 | - QList<TemplateList> patches; | ||
| 42 | - | ||
| 43 | - // Split src into list of TemplateLists of corresponding patches across all Templates | ||
| 44 | - for (int i=0; i<step; i++) { | ||
| 45 | - TemplateList patchBuffer; | ||
| 46 | - for (int j=0; j<src.size(); j++) | ||
| 47 | - patchBuffer.append(Template(src[j].file, src[j][i])); | ||
| 48 | - patches.append(patchBuffer); | ||
| 49 | - patchBuffer.clear(); | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - while (distances.size() < patches.size()) | ||
| 53 | - distances.append(make(description)); | ||
| 54 | - | ||
| 55 | - // Train on a distance for each patch | ||
| 56 | - for (int i=0; i<distances.size(); i++) | ||
| 57 | - distances[i]->train(patches[i]); | ||
| 58 | - } | ||
| 59 | - | ||
| 60 | - float compare(const cv::Mat &target, const cv::Mat &query) const | ||
| 61 | - { | ||
| 62 | - (void) target; | ||
| 63 | - (void) query; | ||
| 64 | - qFatal("Heatmap Distance not compatible with Template to Template comparison."); | ||
| 65 | - | ||
| 66 | - return 0; | ||
| 67 | - } | ||
| 68 | - | ||
| 69 | - void compare(const TemplateList &target, const TemplateList &query, Output *output) const | ||
| 70 | - { | ||
| 71 | - for (int i=0; i<target.size(); i++) { | ||
| 72 | - if (target[i].size() != step || query[i].size() != step) qFatal("Heatmap step not equal to the number of patches."); | ||
| 73 | - for (int j=0; j<step; j++) | ||
| 74 | - output->setRelative(distances[j]->compare(target[i][j],query[i][j]), j, 0); | ||
| 75 | - } | ||
| 76 | - } | ||
| 77 | - | ||
| 78 | - void store(QDataStream &stream) const | ||
| 79 | - { | ||
| 80 | - stream << distances.size(); | ||
| 81 | - foreach (Distance *distance, distances) | ||
| 82 | - distance->store(stream); | ||
| 83 | - } | ||
| 84 | - | ||
| 85 | - void load(QDataStream &stream) | ||
| 86 | - { | ||
| 87 | - int numDistances; | ||
| 88 | - stream >> numDistances; | ||
| 89 | - while (distances.size() < numDistances) | ||
| 90 | - distances.append(make(description)); | ||
| 91 | - foreach (Distance *distance, distances) | ||
| 92 | - distance->load(stream); | ||
| 93 | - } | ||
| 94 | -}; | ||
| 95 | - | ||
| 96 | -BR_REGISTER(Distance, HeatMapDistance) | ||
| 97 | - | ||
| 98 | -} // namespace br | ||
| 99 | - | ||
| 100 | -#include "distance/heatmap.moc" |