diff --git a/sdk/openbr_plugin.cpp b/sdk/openbr_plugin.cpp index b2ce0fd..95407f8 100644 --- a/sdk/openbr_plugin.cpp +++ b/sdk/openbr_plugin.cpp @@ -868,6 +868,7 @@ void MatrixOutput::initialize(const FileList &targetFiles, const FileList &query data.create(queryFiles.size(), targetFiles.size(), CV_32FC1); } +/* MatrixOutput - protected methods */ QString MatrixOutput::toString(int row, int column) const { if (targetFiles[column] == "Label") @@ -881,6 +882,8 @@ void MatrixOutput::set(float value, int i, int j) data.at(i,j) = value; } +BR_REGISTER(Output, MatrixOutput) + /* Gallery - public methods */ TemplateList Gallery::read() { @@ -1164,7 +1167,7 @@ void Distance::train(const TemplateList &templates) { const TemplateList samples = templates.mid(0, 2000); const QList sampleLabels = samples.labels(); - QSharedPointer memoryOutput((MatrixOutput*)Output::make("Matrix", FileList(samples.size()), FileList(samples.size()))); + QScopedPointer memoryOutput(dynamic_cast(Output::make(".Matrix", FileList(samples.size()), FileList(samples.size())))); compare(samples, samples, memoryOutput.data()); double genuineAccumulator, impostorAccumulator; diff --git a/sdk/openbr_plugin.h b/sdk/openbr_plugin.h index 6035f99..603320c 100644 --- a/sdk/openbr_plugin.h +++ b/sdk/openbr_plugin.h @@ -703,6 +703,7 @@ protected: const QString abstraction = baseClassName(); if (name.endsWith(abstraction)) name = name.left(name.size()-abstraction.size()); + if (name.startsWith("br::")) name = name.right(name.size()-4); if (registry->contains(name)) qFatal("%s registry already contains object named: %s", qPrintable(abstraction), qPrintable(name)); registry->insert(name, this); }