New shadows/highlights tool with enhanced halo control

Oh, the problem is different from the one that I imagined. Am I correct to say that you are trying to evenly blur both sides of edges as defined by a threshold?

Another filtering method to throw out there is the rolling guidance filter.

Yes, or in other words to achieve an equivalent degree of blurring at any brightness level, using a single threshold value.

But this is only one part of the problem, the other one being to obtain a good blur also very close to sharp edges. This is where the incremental guided blurs at increasing radius values enter in the game…

I know you still have much more to share but these are my preliminary uninformed thoughts on the matter.

A feature of the guided filter is that it preserves structures; however, where there is noise, the response is to increase the radius and / or regularization. Raising the radius without doing the same for regularization would only soften the noise. So I see that your regularization is quite high to rid the bright block of the noise.

Here is what I mean by rolling guidance. Basically, I would use rolling guidance to smooth the noise and edges that don’t make the threshold first. This preprocessing would help reduce the need for a higher regularization by the guided filter. Images are as follows: input, roll, guided64, guided64roll, guided255, guided255roll. Obviously, this is a rough take. You could customize and tweak both filtering techniques to taste.







Interesting… however, it seems that the rolling version produces “rounded corners” artefacts, similar to those that one gets with the median filter when a threshold is applied. See for example the corner in the second image.

This is the blur mask that I obtain with my “incremental guided filter” method, with the same initial threshold as the other images in my blog post:


The rolling guidance filter in G’MIC uses the bilateral filter to drive it, so it inherits some of its weaknesses. It has potential because it can use other filters to suit the needs of the implementer. Besides the slightly rounded corner, the rest of the blurring is very nice. Yours has banding that I am a little worried about.

Not saying one way is better than the other. The incremental nature of your method just reminded me of the iterative nature of the rolling one. Edit: This can be a downside for the latter because it can be expensive. I have other methods in mind such as generating depth maps but that might be too complex for your purposes. Ha ha, sorry for geeking out. :nerd_face:

PS What about the case of the inner corner? Examples of that would be nice.

Thanks! :+1: Waiting for part 2 (which is the most interesting to me… :slight_smile:

Shadow/highlights works with big delay, it’s normal?

I have just finished drafting the second part, any feedback is welcome!


Which operating system and which PhotoFlow package are you using?

Linux 5.0.10-arch1-1-ARCH #1 SMP PREEMPT Sat Apr 27 20:06:45 UTC 2019 x86_64 GNU/Linux
Photoflow Version : continuous.r1217.gf2215732-1
12Gb RAM
Intel® Core™2 Quad CPU Q9550 @ 2.83GHz

I make new layer for Shadow/highlights and try to change values.

@Chawoosh Are you using the AppImage, or the ARCH package from AUR?

Arch say that have this app in AUR only.

The AppImage should also work fine on ARCH. Could you try this package please? You just need to download it, make it executable, and run it…

And another thing: I feel that sliders working too rough.

You mean that the steps are too big?

Yes, size is small and steps are big.

1 Like

For good example see sliders in RawTherapee.

1 Like

I am currently working on improving the UI layout. If you could give me a list, even partial, of sliders that you feel “rough” that would be really helpful!

Here is a preview of the new slider arrangement:


As I saw, the best example that I’m using is RawTherapee. Here is sample:

More experimentation on my part. It is simpler using the same parameters per iteration but requires more iterations than PF’s incremental guided filter. Excuse the crop. The sample input image didn’t have the same dimensions as the output one. As edge is concerned, I like mine a bit more but mine still has a low freq texture throughout.