digiKam
Loading...
Searching...
No Matches
redeyecorrectionfilter.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 16/08/2016
7 * Description : A Red-Eye automatic detection and correction filter.
8 *
9 * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2016 by Omar Amin <Omar dot moh dot amin at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Local includes
19
20#include "digikam_export.h"
21#include "dimgthreadedfilter.h"
22#include "digikam_globals.h"
23#include "digikam_opencv.h"
25
26namespace Digikam
27{
28
29class DIGIKAM_EXPORT RedEyeCorrectionFilter : public DImgThreadedFilter
30{
31 Q_OBJECT
32
33public:
34
35 explicit RedEyeCorrectionFilter(QObject* const parent = nullptr);
36 explicit RedEyeCorrectionFilter(DImg* const orgImage,
37 QObject* const parent = nullptr,
39
44 DImgThreadedFilter* const parentFilter,
45 const DImg& orgImage,
46 const DImg& destImage,
47 int progressBegin = 0,
48 int progressEnd = 100);
49
50 ~RedEyeCorrectionFilter() override;
51
52 static QString FilterIdentifier()
53 {
54 return QLatin1String("digikam:RedEyeCorrectionFilter");
55 }
56
57 static QString DisplayableName();
58
59 static QList<int> SupportedVersions()
60 {
61 return QList<int>() << 1;
62 }
63
64 static int CurrentVersion()
65 {
66 return 1;
67 }
68
69 QString filterIdentifier() const override
70 {
71 return FilterIdentifier();
72 }
73
74 FilterAction filterAction() override;
75
76private:
77
78 void filterImage() override;
79 void readParameters(const FilterAction&) override;
80
81 void correctRedEye(uchar* data,
82 int type,
83 const cv::Rect& eyerect,
84 const cv::Rect& imgRect);
85 void QRectFtocvRect(const QList<QRect>& faces,
86 std::vector<cv::Rect>& result);
87
88private:
89
90 class Private;
91 Private* const d = nullptr;
92};
93
94} // namespace Digikam
Definition dimgthreadedfilter.h:31
Definition dimg.h:52
Definition filteraction.h:33
Definition redeyecorrectioncontainer.h:32
Definition redeyecorrectionfilter.h:30
static QString FilterIdentifier()
Definition redeyecorrectionfilter.h:52
QString filterIdentifier() const override
Definition redeyecorrectionfilter.h:69
static int CurrentVersion()
Definition redeyecorrectionfilter.h:64
static QList< int > SupportedVersions()
Definition redeyecorrectionfilter.h:59
Definition datefolderview.cpp:34