Retinex: Fixed wrong gaussian part for methods 'low' and 'uniform'
This commit is contained in:
parent
192569a6bd
commit
864ab0685d
@ -70,20 +70,20 @@ void retinex_scales( float* scales, int nscales, int mode, int s)
|
|||||||
if ( nscales == 1 ) {
|
if ( nscales == 1 ) {
|
||||||
scales[0] = (float)s / 2.f;
|
scales[0] = (float)s / 2.f;
|
||||||
} else if (nscales == 2) {
|
} else if (nscales == 2) {
|
||||||
scales[0] = (float) s / 2.f;
|
scales[1] = (float) s / 2.f;
|
||||||
scales[1] = (float) s;
|
scales[0] = (float) s;
|
||||||
} else {
|
} else {
|
||||||
float size_step = (float) s / (float) nscales;
|
float size_step = (float) s / (float) nscales;
|
||||||
|
|
||||||
if (mode == 0) {
|
if (mode == 0) {
|
||||||
for (int i = 0; i < nscales; ++i ) {
|
for (int i = 0; i < nscales; ++i ) {
|
||||||
scales[i] = 2.0f + (float)i * size_step;
|
scales[nscales - i - 1] = 2.0f + (float)i * size_step;
|
||||||
}
|
}
|
||||||
} else if (mode == 1) {
|
} else if (mode == 1) {
|
||||||
size_step = (float)log(s - 2.0f) / (float) nscales;
|
size_step = (float)log(s - 2.0f) / (float) nscales;
|
||||||
|
|
||||||
for (int i = 0; i < nscales; ++i ) {
|
for (int i = 0; i < nscales; ++i ) {
|
||||||
scales[i] = 2.0f + (float)pow (10.f, (i * size_step) / log (10.f));
|
scales[nscales - i - 1] = 2.0f + (float)pow (10.f, (i * size_step) / log (10.f));
|
||||||
}
|
}
|
||||||
} else if (mode == 2) {
|
} else if (mode == 2) {
|
||||||
size_step = (float) log(s - 2.0f) / (float) nscales;
|
size_step = (float) log(s - 2.0f) / (float) nscales;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user