Local adjustments - Denoise - improvments with Non Local means issue #6087 (#6091)

* Improvment to denoise

* Initialize nlmeans - thanks to Alberto and Ingo

* Added 2 sliders max_patch and max_radius

* Added Frame Non-local means

* Improve GUI and tooltips - french

* Change dfault detail - and comment code

* Change label

* Adapt English tooltip

* Change GUI for NLmeans

* Change order GUI denoise

* Some changes to enable DCT - labels and tooltips

* French labels tooltip

* Change order combobox mode denoise - labels - tooltips

* Change tooltip Denoise based on luminance mask

* Change a tooltip

* Removes unnecessary code

* Nlmeans add gamma to preserve structure or reinforce denoise

* Change gamma tooltip

* Change tooltip Recovery denoise

* Disabled nlmeans if skip > 5

* Change tooltip - size limit spot Nlmeans 150-150

* Change gamma Nlmeans

* Supress display console

* Speedup for gammalog and igammalog, #6087

* SSE code for (i)gammalog, #6087

Co-authored-by: Ingo Weyrich <heckflosse67@gmx.de>
This commit is contained in:
Desmis
2021-02-05 16:24:43 +01:00
committed by GitHub
parent 1d98ff8ca4
commit 6ad419f189
13 changed files with 693 additions and 42 deletions

View File

@@ -136,6 +136,11 @@ public:
TYPE_7X7,
TYPE_9X9
};
enum class BlurType {
OFF,
BOX,
GAUSS
};
double lumimul[3];
@@ -252,6 +257,8 @@ public:
float maxdE, float mindE, float maxdElim, float mindElim, float iterat, float limscope, int scope, float balance, float balanceh);
void discrete_laplacian_threshold(float * data_out, const float * data_in, size_t nx, size_t ny, float t);
void laplacian(const array2D<float> &src, array2D<float> &dst, int bfw, int bfh, float threshold, float ceiling, float factor, bool multiThread);
void detail_mask(const array2D<float> &src, array2D<float> &mask, int bfw, int bfh, float scaling, float threshold, float ceiling, float factor, BlurType blur_type, float blur, bool multithread);
void NLMeans(float **img, int strength, int detail_thresh, int patch, int radius, float gam, int bfw, int bfh, float scale, bool multithread);
void rex_poisson_dct(float * data, size_t nx, size_t ny, double m);
void mean_dt(const float * data, size_t size, double& mean_p, double& dt_p);