File indexing completed on 2024-05-26 04:33:07

0001 /*
0002  * This file is part of the KDE project
0003  *
0004  * SPDX-FileCopyrightText: 2005 Cyrille Berger <cberger@cberger.net>
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #ifndef KIS_WAVELET_NOISE_REDUCTION_H
0009 #define KIS_WAVELET_NOISE_REDUCTION_H
0010 
0011 #include <vector>
0012 
0013 #include <filter/kis_filter.h>
0014 
0015 #define BEST_WAVELET_THRESHOLD_VALUE 7.0
0016 
0017 /**
0018 @author Cyrille Berger
0019 */
0020 class KisWaveletNoiseReduction : public KisFilter
0021 {
0022 public:
0023     KisWaveletNoiseReduction();
0024 
0025     ~KisWaveletNoiseReduction() override;
0026 
0027 public:
0028 
0029     void processImpl(KisPaintDeviceSP device,
0030                      const QRect& applyRect,
0031                      const KisFilterConfigurationSP config,
0032                      KoUpdater* progressUpdater
0033                      ) const override;
0034     KisConfigWidget * createConfigurationWidget(QWidget* parent, const KisPaintDeviceSP dev, bool useForMasks) const override;
0035 
0036     static inline KoID id() {
0037         return KoID("waveletnoisereducer", i18n("Wavelet Noise Reducer"));
0038     }
0039 
0040 private:
0041     KisFilterConfigurationSP  defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override;
0042 };
0043 
0044 #endif