Dehaze bug with some files
This commit is contained in:
parent
f22c11c27e
commit
4fdbe89ebe
@ -181,13 +181,24 @@ StopWatch Stop1("MSR");
|
|||||||
#endif
|
#endif
|
||||||
for ( int i=0; i < H_L; i++) {
|
for ( int i=0; i < H_L; i++) {
|
||||||
int j;
|
int j;
|
||||||
for (j=0; j < W_L-3; j+=4)
|
|
||||||
|
// for (j=0; j < W_L-3; j+=4)
|
||||||
{
|
{
|
||||||
_mm_storeu_ps(&dst[i][j], LVFU(dst[i][j]) + pondv * ( xlogf(LVFU(src[i][j])/LVFU(out[i][j])) ));
|
|
||||||
|
// _mm_storeu_ps(&dst[i][j], LVFU(dst[i][j]) + pondv * ( xlogf(LVFU(src[i][j])/LVFU(out[i][j])) ));
|
||||||
}
|
}
|
||||||
for (;j < W_L; j++)
|
|
||||||
|
// for (;j < W_L; j++)
|
||||||
|
for (int j=0;j < W_L; j++)
|
||||||
|
|
||||||
{
|
{
|
||||||
dst[i][j] += pond * ( xlogf((src[i][j])/out[i][j]) );
|
float limds =(src[i][j])/out[i][j];
|
||||||
|
if(limds > 10000.f) limds=10000.f;
|
||||||
|
if(limds < 0.0001f) limds=0.0001f;
|
||||||
|
|
||||||
|
// dst[i][j] += pond * ( xlogf((src[i][j])/out[i][j]) );
|
||||||
|
dst[i][j] += pond * ( xlogf((limds) ));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -198,6 +209,10 @@ StopWatch Stop1("MSR");
|
|||||||
for ( int i=0; i < H_L; i++)
|
for ( int i=0; i < H_L; i++)
|
||||||
for (int j=0; j < W_L; j++)
|
for (int j=0; j < W_L; j++)
|
||||||
{
|
{
|
||||||
|
float limds =(src[i][j])/out[i][j];
|
||||||
|
if(limds > 10000.f) limds=10000.f;
|
||||||
|
if(limds < 0.0001f) limds=0.0001f;
|
||||||
|
|
||||||
dst[i][j] += pond * ( xlogf((src[i][j])/out[i][j]) );
|
dst[i][j] += pond * ( xlogf((src[i][j])/out[i][j]) );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -226,18 +241,10 @@ float logBetaGain = xlogf(beta) * gain;
|
|||||||
mean=0.f;stddv=0.f;
|
mean=0.f;stddv=0.f;
|
||||||
mean_stddv( dst, mean, stddv, W_L, H_L);
|
mean_stddv( dst, mean, stddv, W_L, H_L);
|
||||||
|
|
||||||
/* for (int i=0; i< H_L; i++ )
|
|
||||||
for (int j=0; j<W_L; j++)
|
|
||||||
{
|
|
||||||
if(dst[i][j] > (mean + 1.5f * stddv)) dst[i][j] = mean + 1.5f * stddv;
|
|
||||||
if(dst[i][j] < (mean - 1.5f * stddv)) dst[i][j] = mean - 1.5f * stddv;
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
mini = mean - vart*stddv;
|
mini = mean - vart*stddv;
|
||||||
maxi = mean + vart*stddv;
|
maxi = mean + vart*stddv;
|
||||||
delta = maxi - mini;
|
delta = maxi - mini;
|
||||||
// printf("maxi=%f mini=%f mean=%f std=%f delta=%f\n", maxi, mini, mean, stddv, delta);
|
printf("maxi=%f mini=%f mean=%f std=%f delta=%f\n", maxi, mini, mean, stddv, delta);
|
||||||
|
|
||||||
if ( !delta ) delta = 1.0f;
|
if ( !delta ) delta = 1.0f;
|
||||||
float cdfactor = gain2 * 32768.f / delta;
|
float cdfactor = gain2 * 32768.f / delta;
|
||||||
@ -250,7 +257,6 @@ float logBetaGain = xlogf(beta) * gain;
|
|||||||
float cd = cdfactor * ( dst[i][j] - mini ) + offse;
|
float cd = cdfactor * ( dst[i][j] - mini ) + offse;
|
||||||
lab->L[i][j]=((1.f - strength)* lab->L[i][j] + strength * clipdehaz( cd, 0.f, 32768.f ));
|
lab->L[i][j]=((1.f - strength)* lab->L[i][j] + strength * clipdehaz( cd, 0.f, 32768.f ));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < H_L; i++) {
|
for (int i = 0; i < H_L; i++) {
|
||||||
delete [] dst[i];
|
delete [] dst[i];
|
||||||
}
|
}
|
||||||
|
@ -1041,10 +1041,6 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten
|
|||||||
toEdit.dehaz.retinex = mods.dehaz.retinex;
|
toEdit.dehaz.retinex = mods.dehaz.retinex;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dehaz.enabled) {
|
|
||||||
toEdit.dehaz.enabled = mods.dehaz.enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dehaz.neigh) {
|
if (dehaz.neigh) {
|
||||||
toEdit.dehaz.neigh = mods.dehaz.neigh;
|
toEdit.dehaz.neigh = mods.dehaz.neigh;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user