Re: [Gegl-developer] Gegl Operation : Retinex

Hi -

just ressurrecting the thread to get the ball rolling again.

It looks like this still remains to be rewritten for GEGL?

(what lead me to do this? I've hit the "retinex" filter description
while translating the
GIMP manual, and went happily to gimp master to check how retinex would
behave in a 32 bit per channel image - just to find it was not there)

On 29 July 2010 11:08, Geert Jordaens <geert jordaens telenet be> wrote:


I'm trying to port the retinex operation of gimp to a Gegl operation and
facing following problems.

First approach :

1. a GeglOperationMeta since the Retinex algorithm depending on the
parameters needs multiple blurred images (gegl:gaussian-blur).

2. The difference between the original image and each of  the blurred images
have to be summed an result in an intermediate image.
This seems not possible without implementing an operation with a specific
calculation :

    intermediate[n] += weight * (log (input[n] + 1.) - log (blur[n]))

3. The next step would be another specialised op that performs :

    logl = log(intermediate[0] + intermediate[1] + intermediate[2] + 3.)
    dest[n+i] = (gain * ((log(alpha * (input[n]+1.)) - logl) *
intermediate[n]) + offset);

4. Finally the values have to be corrected with the variance and mean
calculated on the whole image.

Second approach :
GeglOperationAreaFilter implemented steps 1..3 of first apporach within the
process method.
The same problem for step 4.

Any suggestions on :

How to go with step 4 since the operations process method can only calculate
a mean and variance for its ROI?

Additional observation for Retinex and Gaussian Blur if the value of
scale/stdev is equal or bigger then the default size of the gegl ROI then
way the splitting in smaller chunks becomes a bottleneck. If the extra area
needed around the ROI is important in respect to the ROI what kind of
operation should be used?

Gegl-developer mailing list
Gegl-developer lists XCF Berkeley EDU

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]