Re: [Gimp-developer] Selective gaussian blur port to gegl

Thank you for poking around looking for more things to bring over to GEGL. I do not know much about the GIMP plug-in, but can tell you some other bits of information that could be relevant ;)

The core part of "selective gaussian blur" is what is normally called "bilateral filtering" in academic image processing circles. GEGL already has a (rather slow) bilateral filter implemented contained in operations/common/bilateral-filter.c

The specifics of the behavior of GIMPs selective-gaussian blur is something I'd consider a historic artifact - that we might not want to preserve in future versions.

(As to the lines you've pointed out, looking at them in isolation.. this seems to be code that deals with correctly handling alpha; GEGL does this normally by processing buffers with premultiplied alpha, this seems to be manual hacks that scales the contribution of pixels to the sum by the alpha.. and since legacy GIMP is 8bpc,   >>= 8, is the same as /256  and 256 is 1.0, which normalizes the effect of multiplying by the alpha values between 0 and 255.)

On Sat, Apr 6, 2013 at 12:14 PM, Karthikeyan S <karthikdevel gmail com> wrote:
Hi all,
I am trying to port the selective gaussian blur filter to gegl. I do not understand the following lines in the original gimp code and what purpose they serve.

Line 668
(has_alpha) d *= src_b[nb - b]; // ?

Line 676 if (has_alpha) { rowsum >>= 8; // why? rowfact >>= 8; }


Also, as of now, my implementation correctly maintains edges in checker board images while blurring other areas. I am trying to debug another issue wherein I see that the noise pixels (in complete dark background in the checkerboard image)  seem to get smeared out to neighbourhood areas and we get large patches of white arround the blurred pixel (This does not happen in gimp implementation). I am trying to see if the above lines have some clue to that.


gimp-developer-list mailing list
gimp-developer-list gnome org

«The future is already here. It's just not very evenly distributed»
                                                 -- William Gibson                  

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