From e1e824d5ab137852d1089d830b73a4e73a9cd338 Mon Sep 17 00:00:00 2001 From: Scott Klum Date: Thu, 28 Feb 2013 17:46:20 -0500 Subject: [PATCH] Added rankOuput --- sdk/core/plot.cpp | 7 +++++++ sdk/plugins/output.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ sdk/plugins/stasm.cpp | 2 +- share/openbr/cmake/FindStasm.cmake | 2 ++ 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/sdk/core/plot.cpp b/sdk/core/plot.cpp index 9e053e4..e8b7ec1 100644 --- a/sdk/core/plot.cpp +++ b/sdk/core/plot.cpp @@ -254,6 +254,13 @@ float Evaluate(const QString &simmat, const QString &mask, const QString &csv) lines.append(qPrintable(QString("CMC,%1,%2").arg(QString::number(i), QString::number(float(realizedReturns)/possibleReturns)))); } + // Write good matches and bad matches + /* + const int Good_Matches = 3; + const int Bad_Matches = 3; + + for (int i = 1; i<=)*/ + if (!csv.isEmpty()) QtUtils::writeFile(csv, lines); qDebug("TAR @ FAR = 0.01: %.3f", result); return result; diff --git a/sdk/plugins/output.cpp b/sdk/plugins/output.cpp index 1d8d9b8..488247e 100644 --- a/sdk/plugins/output.cpp +++ b/sdk/plugins/output.cpp @@ -259,6 +259,46 @@ BR_REGISTER(Output, EmptyOutput) /*! * \ingroup outputs + * \brief Outputs highest ranked matches with scores. + * \author Scott Klum \cite sklum + */ +class rankOutput : public MatrixOutput +{ + Q_OBJECT + + ~rankOutput() + { + if (targetFiles.isEmpty() || queryFiles.isEmpty()) return; + + QList ranks; + QList scores; + QStringList lines; + + for (int i=0; i Pair; + int rank = 1; + foreach (const Pair &pair, Common::Sort(OpenCVUtils::matrixToVector(data.row(i)), true)) { + if(targetFiles[pair.second].label() == queryFiles[i].label()) { + ranks.append(rank); + scores.append(pair.first); + break; + } + rank++; + } + } + + typedef QPair RankPair; + foreach (const RankPair &pair, Common::Sort(ranks, false)) + lines.append(queryFiles[pair.second].name + " " + QString::number(pair.first) + " " + QString::number(scores[pair.second]) + " " + targetFiles[pair.second].name); + + QtUtils::writeFile(file, lines); + } +}; + +BR_REGISTER(Output, rankOutput) + +/*! + * \ingroup outputs * \brief The highest scoring matches. * \author Josh Klontz \cite jklontz */ diff --git a/sdk/plugins/stasm.cpp b/sdk/plugins/stasm.cpp index fac064a..00a1835 100644 --- a/sdk/plugins/stasm.cpp +++ b/sdk/plugins/stasm.cpp @@ -45,7 +45,7 @@ class StasmTransform : public UntrainableTransform AsmSearchDll(&nlandmarks, landmarks, qPrintable(src.file.name), reinterpret_cast(src.m().data), src.m().cols, src.m().rows, - src.m(), (src.m().channels() == 3), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-68-1d.conf"), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-76-2d.conf")); + src.m(), (src.m().channels() == 3), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-68-1d.conf"), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/mu-76-2d.conf"), qPrintable(Globals->sdkPath + "/share/openbr/models/stasm/")); if (nlandmarks == 0) qWarning("Unable to detect Stasm landmarks"); diff --git a/share/openbr/cmake/FindStasm.cmake b/share/openbr/cmake/FindStasm.cmake index 8c4b7ef..bf026dd 100644 --- a/share/openbr/cmake/FindStasm.cmake +++ b/share/openbr/cmake/FindStasm.cmake @@ -12,6 +12,8 @@ find_path(Stasm_DIR include/stasm.hpp ${CMAKE_SOURCE_DIR}/3rdparty/*) add_subdirectory(${Stasm_DIR} ${Stasm_DIR}/build) +set(SRC ${SOURCE};${SRC}) + include_directories(${Stasm_DIR}/include) link_directories(${Stasm_DIR}/build) -- libgit2 0.21.4