/usr/include/libkface/dataproviders.h is in libkface-dev 1.0~digikam3.5.0-0ubuntu10.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | /** ===========================================================
* @file
*
* This file is a part of digiKam project
* <a href="http://www.digikam.org">http://www.digikam.org</a>
*
* @date 2013-05-18
* @brief Wrapper class for face recongition
*
* @author Copyright (C) 2013 by Marcel Wiesweg
* <a href="mailto:marcel dot wiesweg at gmx dot de">marcel dot wiesweg at gmx dot de</a>
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* ============================================================ */
#ifndef KFACE_DATAPROVIDERS_H
#define KFACE_DATAPROVIDERS_H
// Qt includes
#include <QImage>
#include <QList>
// Local includes
#include "libkface_export.h"
#include "identity.h"
namespace KFaceIface
{
class KFACE_EXPORT ImageListProvider
{
public:
/**
* This class provides access to a list of unspecified entities,
* where for each entry a QImage can be provided.
* Only forward iteration is required.
*/
virtual ~ImageListProvider() {}
virtual int size() const = 0;
virtual bool atEnd() const = 0;
virtual void proceed(int steps = 1) = 0;
virtual QImage image() = 0;
};
/// A wrapper implementation for ImageListProvider if you have a QList of QImages
class KFACE_EXPORT QListImageListProvider : public ImageListProvider
{
public:
QListImageListProvider(const QList<QImage>& lst)
: list(lst),
it(list.constBegin())
{
}
QListImageListProvider()
: it(list.constBegin())
{
}
virtual int size() const { return list.size(); }
virtual bool atEnd() const { return it == list.constEnd(); }
virtual void proceed(int steps = 1) { it += steps; }
void reset() { it = list.constBegin(); }
virtual QImage image() { return *it; }
public:
QList<QImage> list;
QList<QImage>::const_iterator it;
};
class KFACE_EXPORT EmptyImageListProvider : public ImageListProvider
{
public:
virtual int size() const { return 0; }
virtual bool atEnd() const { return true; }
virtual void proceed(int steps = 1) { Q_UNUSED(steps) }
virtual QImage image() { return QImage(); }
};
// ----------------------------------------------------------------------------------------
class KFACE_EXPORT TrainingDataProvider
{
public:
/**
* A TrainingDataProvider provides a call-back interface
* for the training process to retrieve the necessary information.
* It is not specified, but depends on the backend which of the methods
* in which order and for which identities will be called.
*/
virtual ~TrainingDataProvider() {}
/**
* Provides those images for the given identity that have not yet been
* supplied for training.
* Ownership of the returned object stays with the TrainingDataProvider.
*/
virtual ImageListProvider* newImages(const Identity& identity) = 0;
/**
* Provides all images known for the given identity.
* Ownership of the returned object stays with the TrainingDataProvider.
*/
virtual ImageListProvider* images(const Identity& identity) = 0;
};
} // namespace KFaceIface
#endif // KFACE_DATAPROVIDERS_H
|