diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 272ce3469..36362ce7a 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -112,7 +112,7 @@ namespace rtengine { //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // gamma transform for input data float gam = dnparams.gamma; - float gamthresh = 0.03; + float gamthresh = 0.001; float gamslope = exp(log((double)gamthresh)/gam)/gamthresh; LUTf gamcurve(65536,0); @@ -769,6 +769,9 @@ namespace rtengine { //simple wavelet shrinkage const float eps = 0.01f; float * sfave = new float[W_L*H_L]; + float * sfavea = new float[W_L*H_L]; + float * sfaveb = new float[W_L*H_L]; + int max; printf("\n level=%d \n",level); @@ -797,14 +800,37 @@ namespace rtengine { float mag_a = SQR(WavCoeffs_a[dir][coeffloc_ab])+eps; float mag_b = SQR(WavCoeffs_b[dir][coeffloc_ab])+eps; + sfavea[coeffloc_ab] = (1-exp(-(mag_a/mad_a)-(mag_L/(9*madL)))); + sfaveb[coeffloc_ab] = (1-exp(-(mag_b/mad_b)-(mag_L/(9*madL)))); // 'firm' threshold of chroma coefficients - WavCoeffs_a[dir][coeffloc_ab] *= SQR(1-exp(-(mag_a/mad_a)-(mag_L/(9*madL))));//(coeff_a>2*thresh_a ? 1 : (coeff_a2*thresh_b ? 1 : (coeff_b2*thresh_a ? 1 : (coeff_a2*thresh_b ? 1 : (coeff_b0.01) { @@ -834,6 +860,9 @@ namespace rtengine { } delete[] sfave; + delete[] sfavea; + delete[] sfaveb; + } diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 04a599f1b..7bdb64f45 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -102,6 +102,8 @@ void Crop::update (int todo) { PreviewProps pp (trafx, trafy, trafw*skip, trafh*skip, skip); parent->imgsrc->getImage (parent->currWB, tr, origCrop, pp, params.hlrecovery, params.icm, params.raw ); + //parent->imgsrc->convertColorSpace(origCrop, params.icm); + if (todo & M_LINDENOISE) { if (skip==1 && params.dirpyrDenoise.enabled) { parent->ipf.RGB_denoise(origCrop, origCrop, /*Roffset,*/ params.dirpyrDenoise, params.defringe); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 4b9df1fee..16ab260b6 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -202,6 +202,8 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) { setScale (scale); imgsrc->getImage (currWB, tr, orig_prev, pp, params.hlrecovery, params.icm, params.raw); + //imgsrc->convertColorSpace(orig_prev, params.icm); + if (todo & M_LINDENOISE) { //printf("denoising!\n"); if (scale==1 && params.dirpyrDenoise.enabled) {