Preview of PhotoFlow 0.2.3: LMMSE demosaicing and more

I’m working on the next PhotoFlow version, that will include the LMMSE demosaicing method derived from RawTherapee. LMMSE is particularly suited for high-iso images, as it tends to preserve the “grainy” look of luminance noise.

Incidentally, the LMMSE output from PF tends to show less artifacts on some images, due to the different way the white balance is applied in the RAW processing (RT applies an auto-WB before the demosaicing and the final WB after, while PF applies the final WB already before demosaicing).

The LMMSE code is already available from the stable github branch.

Below are two examples, taken from the amsterdam.pef test image and one 3200 ISO image from my D300 camera, in which I compared PF and RT outputs.

amsterdam.pef, PhotoFlow LMMSE with no enhancements:

amsterdam.pef, RawTherapee LMMSE with 2 enhancement steps:

3200-ISO image, PhotoFlow LMMSE with no enhancements:

3200-ISO image, RawTherapee LMMSE with 2 enhancement steps:

Next features in the TODO list for version 0.2.3: despeckle and perspective correction.

3 Likes

I just noticed on the github page that there doesn’t appear to be a link to the binary builds for windows or osx?

The up-to-date installation instructions for Windows and OSX are given here.

The installers are always included in new releases: Releases · aferrero2707/PhotoFlow · GitHub

I’ve also added this link in the main README.md file, thanks for pointing that out!

1 Like

Hi Carmelo, I was just on github and only saw version 0.2.2 available. Will 0.2.3 be available soon?

I think I will need still a couple of weeks to implement the perspective correction, then I will most likely package the new version.

1 Like

The perspective corrections tool is basically ready! Apart from the intrinsic usefulness of the tool, it is also the first example of code ported from Darktable into PhotoFlow…

Like in Darktable, the tool works by defining a quadrilateral region that is transformed into a rectangle in the corrected image:

Google Photos

Google Photos

Of course, the copyright notice as well as the clear origin from the Darktable project is preserved in the code ported into PhotoFlow…

3 Likes

One more feature to appear in the next PhotoFlow release: a button to reset all the parameters of a given tool to their default values.

The “reset” button is the rightmost in the second row of tool controls, the one that looks like “a circle with a vertical line in the middle”. Darktable uses the same icon for this functionality, so people will hopefully not be too disoriented when first seeing the photoflow interface.

All the buttons now include tooltips to quickly explain their functionality.

Moreover, most tools will now include the possibility to select a target channel (instead of modifying all channels). It will now be possible to do things like “invert only the green channel” (maybe not very useful) or “sharpen only the Lab L channel” (much more useful!). The possibilities are almost infinite, all depends on what effect you want to achieve…

I had meant to say something about this earlier, but there is also an option of leveraging something like the “Open Source Design” community for any thoughts or guidance on UI/UX:

Maybe something like this could help to drive interaction design for you? Just a thought. :slight_smile:

@patdavid This is really a good suggestion! I’ll try to get in touch with someone there and see if there is interest to collaborate.

1 Like

I figured you’d rather spend your time working on the algorithms and core software vs. user interaction design. :wink:

One more item in the TODO list for version 0.2.3 is implemented: impulse noise reduction, based on the equivalent tool from Rawtherapee:

Note that, compared to RT implementation, the version in PhotoFlow not only provides a threshold parameter to control the strength of the effect, but also an opacity adjustment that lets you further control how much of the denoised imaged gets blended with the original one.

There are still a couple of pending bugs that need to be fixed, so I expect to release version 0.2.3 some time during next week… more news asap!