Read@CVL
WriterIdentificationPlugin.h
Go to the documentation of this file.
1 /*******************************************************************************************************
2  BinarizationPlugin.h
3 
4  nomacs is a fast and small image viewer with the capability of synchronizing multiple instances
5 
6  Copyright (C) 2011-2015 Markus Diem <markus@nomacs.org>
7 
8  This file is part of nomacs.
9 
10  nomacs is free software: you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  nomacs is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with this program. If not, see <http://www.gnu.org/licenses/>.
22 
23  *******************************************************************************************************/
24 
25 #pragma once
26 
27 #include "DkPluginInterface.h"
28 #include "WriterDatabase.h"
29 
30 class QSettings;
31 namespace rdm {
32 
33 class WIInfo : public nmc::DkBatchInfo {
34 
35 public:
36  WIInfo(const QString& id = QString(), const QString& filePath = QString());
37 
38  void setWriter(const QString& writer);
39  QString writer() const;
40 
41  void setFeatureFilePath(const QString& p);
42  QString featureFilePath() const;
43 
44  void setFeatureVector(const cv::Mat featureVec);
45  cv::Mat featureVector() const;
46 private:
47  QString mWriter;
48  QString mFeatureFilePath;
49  cv::Mat mFeatureVec;
50 
51 };
52 
53 class WriterIdentificationPlugin : public QObject, nmc::DkBatchPluginInterface {
54  Q_OBJECT
55  Q_INTERFACES(nmc::DkBatchPluginInterface)
56  Q_PLUGIN_METADATA(IID "com.nomacs.ImageLounge.WriterIdentificationPlugin/3.3" FILE "WriterIdentificationPlugin.json")
57 
58 public:
59  WriterIdentificationPlugin(QObject* parent = 0);
61 
62  QString id() const override;
63  QImage image() const override;
64 
65  QList<QAction*> createActions(QWidget* parent) override;
66  QList<QAction*> pluginActions() const override;
67  QSharedPointer<nmc::DkImageContainer> runPlugin(
68  const QString &runID,
69  QSharedPointer<nmc::DkImageContainer> imgC,
70  const nmc::DkSaveInfo& saveInfo,
71  QSharedPointer<nmc::DkBatchInfo>& info) const;
72  void preLoadPlugin() const override;
73  void postLoadPlugin(const QVector<QSharedPointer<nmc::DkBatchInfo> >& batchInfo) const override;
74  enum {
82  // add actions here
83 
84  id_end
85  };
86 
87 protected:
88  QList<QAction*> mActions;
89  QStringList mRunIDs;
90  QStringList mMenuNames;
91  QStringList mMenuStatusTips;
93 
94 private:
95  void init();
96  void loadSettings(QSettings& settings);
97  void saveSettings(QSettings& settings) const;
98  QString featureFilePath(QString imgPath, bool createDir=false) const;
99  QString extractWriterIDFromFilename(const QString fileName) const;
100 
101  QString mSettingsVocPath = QString();
103  int mVocNumberOfClusters = -1;
104  int mVocNumberOfPCA = -1;
105  int mVocMaxSIFTSize = -1;
106  int mVocMinSIFTSize = -1;
107  double mVocPowerNormalization;
109  QString mFeatureDir = QString();
110  QString mEvalFile = QString();
111 };
112 
113 };
Definition: WriterDatabase.h:218
QStringList mMenuStatusTips
Definition: WriterIdentificationPlugin.h:91
Definition: WriterIdentificationPlugin.h:78
WIInfo(const QString &id=QString(), const QString &filePath=QString())
Definition: WriterIdentificationPlugin.cpp:713
Definition: WriterDatabase.h:124
void setFeatureVector(const cv::Mat featureVec)
Definition: WriterIdentificationPlugin.cpp:732
Definition: WriterIdentificationPlugin.h:79
Definition: WriterIdentificationPlugin.h:80
Definition: WriterIdentificationPlugin.h:76
rdf::WriterDatabase mWIDatabase
Definition: WriterIdentificationPlugin.h:92
void setFeatureFilePath(const QString &p)
Definition: WriterIdentificationPlugin.cpp:724
QList< QAction * > mActions
Definition: WriterIdentificationPlugin.h:88
QStringList mMenuNames
Definition: WriterIdentificationPlugin.h:90
QStringList mRunIDs
Definition: WriterIdentificationPlugin.h:89
Definition: WriterDatabase.h:108
void setWriter(const QString &writer)
Definition: WriterIdentificationPlugin.cpp:716
Definition: WriterIdentificationPlugin.h:81
QString writer() const
Definition: WriterIdentificationPlugin.cpp:720
Definition: WriterIdentificationPlugin.h:33
cv::Mat featureVector() const
Definition: WriterIdentificationPlugin.cpp:736
Definition: WriterIdentificationPlugin.h:53
Definition: WriterIdentificationPlugin.h:75
Definition: WriterIdentificationPlugin.h:77
Definition: BatchTest.cpp:45
QString featureFilePath() const
Definition: WriterIdentificationPlugin.cpp:728