Add chroma to residual wavelet local contrast

This commit is contained in:
Desmis 2019-09-02 19:50:24 +02:00
parent 94d977bcb0
commit 5d2ca598d4
2 changed files with 53 additions and 1 deletions

View File

@ -8182,6 +8182,58 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
wdspot->reconstruct(tmp1->L[0], 1.f);
delete wdspot;
const float satur = params->locallab.spots.at(sp).residchro;
if (satur != 0.f) {
wavelet_decomposition *wdspota = new wavelet_decomposition(tmp1->a[0], tmp1->W, tmp1->H, wavelet_level, 1, sk, numThreads, 6);
if (wdspota->memoryAllocationFailed) {
return;
}
float *wav_ab0a = wdspota->coeff0;
// int maxlvla = wdspota->maxlevel();
int W_La = wdspota->level_W(0);
int H_La = wdspota->level_H(0);
#ifdef _OPENMP
#pragma omp for nowait
#endif
for (int i = 0; i < W_La * H_La; i++) {
wav_ab0a[i] *= (1.f + satur / 100.f);
wav_ab0a[i] = CLIPC(wav_ab0a[i]);
}
wdspota->reconstruct(tmp1->a[0], 1.f);
delete wdspota;
wavelet_decomposition *wdspotb = new wavelet_decomposition(tmp1->b[0], tmp1->W, tmp1->H, wavelet_level, 1, sk, numThreads, 6);
if (wdspotb->memoryAllocationFailed) {
return;
}
float *wav_ab0b = wdspotb->coeff0;
// int maxlvlb = wdspotb->maxlevel();
int W_Lb = wdspotb->level_W(0);
int H_Lb = wdspotb->level_H(0);
#ifdef _OPENMP
#pragma omp for nowait
#endif
for (int i = 0; i < W_Lb * H_Lb; i++) {
wav_ab0b[i] *= (1.f + satur / 100.f);
wav_ab0b[i] = CLIPC(wav_ab0b[i]);
}
wdspotb->reconstruct(tmp1->b[0], 1.f);
delete wdspotb;
}
float thr = 0.001f;
int flag = 0;

View File

@ -1530,7 +1530,7 @@ Locallab::Locallab():
contrastBox->pack_start(*LocalcurveEditorwav, Gtk::PACK_SHRINK, 4);
contrastBox->pack_start(*levelwav);
contrastBox->pack_start(*residcont);
// contrastBox->pack_start(*residchro);
contrastBox->pack_start(*residchro);
contrastBox->pack_start(*clariFrame);
contrastBox->pack_start(*sensilc);
contrastBox->pack_start(*fftwlc);