New tool "Capture Sharpening"

CS doesn’t have damping but info can be found here: Sharpening - RawPedia.

Thank you. So how does it work?

The docs are clear to me but let me break it down a bit more for you.

If you need to use many iterations (a large number), what normally happens is the fine details tend to become exaggerated. The most distracting part of noise is fine too, so noise might be a problem. What damping does is soften these. Generally, I would avoid iterating too many times. CS adaptively limits the iterations; therefore, doesn’t require damping.

Right, thank you again but I was referring to how the damping does its job within the algorithm. Regularization in the cost function or something different? Specifically? Unfortunately I am not good at reading someone else’s code (nor often my own after a while:-) .

I am in the same boat as you: I am not responsible for the code. The last thing I would say is, based on my previous post, I doubt that dampening (at least in its current form) would mitigate haloing.

I’d be happy to try! I realise I still haven’t got out my deconvolution OpenCl code yet, but I should be able to submit this soon. If capture sharpening lends itself to doing all the iterations on GPU, as you say, then I’d be happy to build on what I’ve got now.


Another capture sharpening example:

Left without cs, right with:

1 Like

Hello @heckflosse

Where can we download the daily builds of RawTherapee, for Windows 10 (64 bit), to try your feature?

For instance, I have checked here:

It looks like the most recent branch (21 November) pertaining to your work is:

Just out of curiosity, I don’t know wheter I am supposed to download the sse4 builds or the other ones most recent SkyLake builds?
At home, I run an old Intel I7: 6500U CPU.
In all truth, I suppose I should opt for the Skylake builds :slight_smile:

Thanks a lot in advance!

1 Like

[quote=“Silvio_Grosso, post:108, topic:14197, full:true”]
Hello @heckflosse

Where can we download the daily builds of RawTherapee, for Windows 10 (64 bit), to try your feature?[/quote]

I always use this link:

1 Like

This is a call for help documenting the Capture Sharpening tool in RT from a user perspective.
I tried to document it, but always ended with very technical documentation, which does not help the users to understand how it works and why it’s better than the (old) RL-deconvolution in RT.

If someone is willing to help:


As automatic nightly builds are provided on official site, I now build mainly for skylake architecture. If requested I can build for generic+ SSE4 feature architecture.

The micro architecture of this processor being skylake, you can use the skylake build and perhaps benefit of improved speed.

see “Skylake SSE4” in the folder.

1 Like

Today I pushed a speedup for processing of flat regions when using Capture Sharpening.
With this file and pp3 cs processing time is reduced by ~30%


For information:


If you found a way to automatically limit the iteration count when halos develop, does that mean have have a reliable halo detection method?
If so, wouldn’t that lead to a relatively simple method to automatically estimate the point spread function?

I implemented an automatic iterations limitation which works quite well to stop iterating when halos appear. But that does not mean it is perfect.
The current implementation processes the image in tiles of size 32x32 pixels. Each of the tiles can be processed with a different gaussian sigma (currrently only gaussian kernels up to sigma 2.0 (13x13) are supported.
If in an iteration of a tile processing one of 32x32 pixels is 50% darker than the original pixel, the algorithm stops iterating.

Simple approach, but works quite well

Though I’m of course open for better approaches :+1:


What if the blurring is off-centre? E.g.,

Corner Softness. Wide-open at full wide angle, the lens showed a little decentering, with the upper corners showing more softness than the lower ones. The center is quite sharp, but softening from the upper corners extends a fair bit into the frame. At full telephoto, corner sharpness is better all around, but the pattern changed, with upper and lower left corners quite sharp and the lower right somewhat soft. The center is again quite sharp, as is most of the frame.


@afre From above

I once had the Idea that one could manually mark borders between objects and enforce a “no ringing” criterion there, using this to guide an algorithm to find the optimal kernel. But I guess that’s a bit off-topic for this thread and quite a project in its own. The idea was to use e.g. the boundary between an out-of-focus background and an object in focus for this because that’s a area in the image where we can make quite solid assumptions about how the transition is supposed to look like with a correct kernel.

@heckflosse Sorry, I forgot. When you get there maybe auto-detect? :crossed_fingers::stuck_out_tongue: