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" |