Commit 8a444f8c010bbb091c5e90553975f6713953bfc3

Authored by Josh Klontz
1 parent 86b72c69

remove rank

Showing 1 changed file with 0 additions and 98 deletions
openbr/plugins/output/rank.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/common.h>  
19 -#include <openbr/core/qtutils.h>  
20 -#include <openbr/core/opencvutils.h>  
21 -  
22 -namespace br  
23 -{  
24 -  
25 -struct RankResult  
26 -{  
27 - int rank;  
28 - float score;  
29 - File probe, target;  
30 -  
31 - bool operator<(const RankResult &other) const  
32 - {  
33 - return this->rank < other.rank;  
34 - }  
35 -  
36 - QString toLine(const QChar &separator) const  
37 - {  
38 - return probe.fileName() + separator + QString::number(rank) + separator + QString::number(score) + separator+ target.fileName();  
39 - }  
40 -};  
41 -  
42 -/*!  
43 - * \ingroup outputs  
44 - * \brief Outputs highest ranked matches with scores.  
45 - * \author Scott Klum \cite sklum  
46 - */  
47 -class rankOutput : public MatrixOutput  
48 -{  
49 - Q_OBJECT  
50 -  
51 - ~rankOutput()  
52 - {  
53 - if (targetFiles.isEmpty() || queryFiles.isEmpty()) return;  
54 -  
55 - QList<int> ranks;  
56 - QList<int> positions;  
57 - QList<float> scores;  
58 - QStringList lines;  
59 -  
60 - QList<RankResult> results;  
61 -  
62 - for (int i=0; i<queryFiles.size(); i++) {  
63 - typedef QPair<float,int> Pair;  
64 - int rank = 1;  
65 - foreach (const Pair &pair, Common::Sort(OpenCVUtils::matrixToVector<float>(data.row(i)), true)) {  
66 - // Check if target files are marked as allParitions, and make sure target and query files are in the same partition  
67 - if (Globals->crossValidate > 0 ? (targetFiles[pair.second].get<int>("Partition",-1) == -1 || targetFiles[pair.second].get<int>("Partition",-1) == queryFiles[i].get<int>("Partition",-1)) : true) {  
68 - if (QString(targetFiles[pair.second]) != QString(queryFiles[i])) {  
69 - if (targetFiles[pair.second].get<QString>("Label") == queryFiles[i].get<QString>("Label")) {  
70 - RankResult result;  
71 - result.rank = rank;  
72 - result.score = pair.first;  
73 - result.probe = queryFiles[i];  
74 - result.target = targetFiles[pair.second];  
75 - results.append(result);  
76 - break;  
77 - }  
78 - rank++;  
79 - }  
80 - }  
81 - }  
82 - }  
83 -  
84 - std::sort(results.begin(), results.end(), std::less<RankResult>());  
85 -  
86 - foreach (const RankResult &result, results)  
87 - lines.append(result.toLine('\t'));  
88 -  
89 -  
90 - QtUtils::writeFile(file, lines);  
91 - }  
92 -};  
93 -  
94 -BR_REGISTER(Output, rankOutput)  
95 -  
96 -} // namespace br  
97 -  
98 -#include "output/rank.moc"