Wavelet levels: denoise and guided filter with hue curve and local contrast (#5894)

* First wavelet denoise

* Gui for wavel denoise

* First version local contrast and denoise

* Second version local contrast and denoise

* second version GUI equalizer

* enable equalizer local contrast denoise 1234

* change local contrast curve defaut

* disable local contrast when curve 1

* denmethod in advanced - standard

* Simulate slider denoise with curve

* Some various chnages

* Chnage reference local contrast

* GUI part reference local contrast

* Enable reference noise mix denoise for local contrast denoise

* Improvment to reference local contrast denoise

* Display comment in console

* Best format string in console

* Change agressive denoise limit to 50 - added tooltip

* Added method quality denoise - change madL in ftblockdn

* Change equalizer 1234 settings - added high level local contrast

* added high levels local contrast curve

* Fixed sigma local contrast

* clean format code

* Some improvments

* normalize level slider high level threshold

* change ordonate curve high level contrast

* Fixed bad level for curve high levels - simplify GUI standard

* several changes - guidefilter final - new double slider threshold

* save provisory work

* save GUI work GF threshold

* save provisory work

* Fixed some bad behavior GUI

* save GUI Hue GF

* Curve Hue for GF

* OMP for hue GF

* addes noisevarhue and fixed some bug

* save GUI equalizer hue

* enable equalizer hue

* Fixed bad behavior GUI in advanced mode

* change some default values

* Others change default values

* Change in progressivity slider threshold local contrast

* simplifie algorithm and GUI

* Added tooltip and chnage some labels

* Change labels and tooltip wavelet denoise

* added level 5 denoise

* Change typo in label guided theshold

* Various changes labels tooltip

* Change minimum wavelet level

* Added level 5 to denoise

* Change slider sigm for a double slider sigm03 sigm45

* small delay for double slider sigm

* Fixed wrong values sigm

* Hide level56 in standard complexity

* Improve in standard complexity

* Various improvment levels 14

* interaction 56 14 - advanced complexity
This commit is contained in:
Desmis
2020-08-30 08:16:31 +02:00
committed by GitHub
parent 287fe74593
commit 467bac3dea
14 changed files with 1527 additions and 106 deletions

View File

@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*
* 2014 Jacques Desmis <jdesmis@gmail.com>
* 2014 2020 Jacques Desmis <jdesmis@gmail.com>
*/
#pragma once
@@ -102,6 +102,23 @@ private:
rtengine::ProcEvent EvWavprotab;
rtengine::ProcEvent EvWavlevelshc;
rtengine::ProcEvent EvWavcomplexmet;
rtengine::ProcEvent EvWavsigm;
rtengine::ProcEvent EvWavdenoise;
rtengine::ProcEvent EvWavdenmethod;
rtengine::ProcEvent EvWavmixmethod;
rtengine::ProcEvent EvWavquamethod;
rtengine::ProcEvent EvWavlevden;
rtengine::ProcEvent EvWavdenoiseh;
rtengine::ProcEvent EvWavstrend;
rtengine::ProcEvent EvWavdetend;
rtengine::ProcEvent EvWavlevdenois;
rtengine::ProcEvent EvWavslimethod;
rtengine::ProcEvent EvWavthrend;
rtengine::ProcEvent EvWavguid;
rtengine::ProcEvent EvWavhue;
rtengine::ProcEvent EvWavthrden;
rtengine::ProcEvent EvWavlevelsigm;
rtengine::ProcEvent EvWavlimden;
LabGrid *labgrid;
@@ -122,6 +139,10 @@ private:
void MedgreinfChanged();
void TMmethodChanged();
void complexmethodChanged();
void denmethodChanged();
void mixmethodChanged();
void quamethodChanged();
void slimethodChanged();
void TilesmethodChanged();
void avoidToggled();
void showmaskToggled ();
@@ -183,6 +204,14 @@ private:
FlatCurveEditor* opacityShapeRG;
CurveEditorGroup* const opacityCurveEditorG;
FlatCurveEditor* opacityShapeBY;
CurveEditorGroup* const CurveEditorwavnoise;
FlatCurveEditor* wavdenoise;
CurveEditorGroup* const CurveEditorwavnoiseh;
FlatCurveEditor* wavdenoiseh;
CurveEditorGroup* const CurveEditorwavguid;
FlatCurveEditor* wavguidf;
CurveEditorGroup* const CurveEditorwavhue;
FlatCurveEditor* wavhue;
CurveEditorGroup* const opacityCurveEditorW;
CurveEditorGroup* const opacityCurveEditorWL;
FlatCurveEditor* opacityShape;
@@ -261,7 +290,13 @@ private:
ThresholdAdjuster* const level1noise;
ThresholdAdjuster* const level2noise;
ThresholdAdjuster* const level3noise;
ThresholdAdjuster* const leveldenoise;
ThresholdAdjuster* const levelsigm;
Adjuster* const sigm;
Adjuster* const levden;
Adjuster* const thrden;
Adjuster* const limden;
Adjuster* const threshold;
Adjuster* const threshold2;
Adjuster* const edgedetect;
@@ -277,6 +312,9 @@ private:
Adjuster* const mergeC;
Adjuster* const softrad;
Adjuster* const softradend;
Adjuster* const strend;
Adjuster* const detend;
Adjuster* const thrend;
Adjuster* const chrwav;
MyComboBoxText* const Lmethod;
@@ -311,6 +349,14 @@ private:
sigc::connection MedgreinfConn;
MyComboBoxText* const ushamethod;
sigc::connection ushamethodconn;
MyComboBoxText* const denmethod;
sigc::connection denmethodconn;
MyComboBoxText* const mixmethod;
sigc::connection mixmethodconn;
MyComboBoxText* const quamethod;
sigc::connection quamethodconn;
MyComboBoxText* const slimethod;
sigc::connection slimethodconn;
Gtk::Frame* const chanMixerHLFrame;
Gtk::Frame* const chanMixerMidFrame;
@@ -323,6 +369,7 @@ private:
Gtk::Frame* const fincFrame;
Gtk::Frame* const dirFrame;
Gtk::Frame* const tonFrame;
Gtk::Frame* const guidFrame;
Gtk::Label* const wavLabels;
Gtk::Label* const labmC;
@@ -343,6 +390,10 @@ private:
Gtk::HBox* const neutrHBox;
Gtk::HBox* const usharpHBox;
Gtk::HBox* const ctboxch;
Gtk::HBox* const quaHBox;
Gtk::HBox* const sliHBox;
Gtk::HBox* const denHBox;
Gtk::HBox* const mixHBox;
Gtk::VBox* const ctboxBA;// = Gtk::manage(new Gtk::VBox());
sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enabletmConn, enableFinalConn, enableclariConn;