File indexing completed on 2025-03-09 03:55:01

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam
0004  *
0005  * Date        : 2010-06-16
0006  * Description : A convenience class to train faces
0007  *
0008  * SPDX-FileCopyrightText:      2010 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
0009  * SPDX-FileCopyrightText:      2010 by Aditya Bhatt <adityabhatt1991 at gmail dot com>
0010  * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0011  *
0012  * SPDX-License-Identifier: GPL-2.0-or-later
0013  *
0014  * ============================================================ */
0015 
0016 #ifndef DIGIKAM_RECOGNITION_TRAINING_PROVIDER_H
0017 #define DIGIKAM_RECOGNITION_TRAINING_PROVIDER_H
0018 
0019 // Qt includes
0020 
0021 #include <QList>
0022 #include <QImage>
0023 
0024 // Local includes
0025 
0026 #include "dataproviders.h"
0027 #include "identity.h"
0028 
0029 namespace Digikam
0030 {
0031 
0032 /**
0033  * A simple QImage training data container used by
0034  * RecognitionDatabase::train(Identity, QImage, QString)
0035  */
0036 class RecognitionTrainingProvider : public TrainingDataProvider
0037 {
0038 public:
0039 
0040     explicit RecognitionTrainingProvider(const Identity& identity,
0041                                          const QList<QImage*>& newImages);
0042     ~RecognitionTrainingProvider()                   override;
0043 
0044     ImageListProvider* newImages(const Identity& id) override;
0045 
0046     ImageListProvider* images(const Identity&)       override;
0047 
0048 public:
0049 
0050     Identity               m_identity;
0051     QListImageListProvider m_toTrain;
0052     QListImageListProvider m_empty;
0053 
0054 private:
0055 
0056     // Disable
0057     RecognitionTrainingProvider(const RecognitionTrainingProvider&)            = delete;
0058     RecognitionTrainingProvider& operator=(const RecognitionTrainingProvider&) = delete;
0059 };
0060 
0061 } // namespace Digikam
0062 
0063 #endif // DIGIKAM_RECOGNITION_TRAINING_PROVIDER_H