Luminosity 0.1

A PhotoShop plugin, developed using FilterMeister, that permits independent highlight and shadow adjustments without the global side effects or flatness created by levels and curves adjustment. It works well as digital fill flash for shadow recovery, for improving washed-out skies, and as a precursor to conversion to black & white. Unlike the controls in PhotoShop (and like Sigma's fill flash) it can also make negative adjustments, for deliberately deepening shadows or washing out highlights.

This is a work in progress, but already works well on many images, so I'm sharing it now.

Up to Other Plugins

Background

This tool grew out of some time I spent reviewing the academic high dynamic range image display literature, which is easy to find at http://citeseer.ist.psu.edu/. I've tested a few sophisticated codes from that work, but don't have time to implement them as plugins. This code is very simple, but also very effective in many cases.

Installation

Drop the filter (download below), which is an .8bf file, into your PhotoShop filters directory, usually something like c:\program files\Adobe\Photoshop\PlugIns\Filters. Then launch PhotoShop. I've tested this with Photoshop 5.0LE and CS, and PS Elements 2.0. It's not demanding and should work with other versions as well.

If you're using other software that accepts PhotoShop compatible plugins installation should be similar, but I don't have any examples to try. It might also run standalone with PluginCommander but I haven't tried that either.

Controls

Luminosity opens to a control dialog with a preview at left. You can drag on the preview to move around your image or selection. You can zoom using the +/- buttons below the image.

Running the filter on a 2mpix image takes about 6 seconds on a 2.4GHz P4.

Shadows
Degree of adjustment to the shadows. 100 = no adjustment, so you can deepen or flatten shadows with values < 100. Default = 200 to lighten the shadows.
Threshold
Threshold RGB value for determination of shadow areas.
Tolerance
Tolerance on determination of shadow areas. Shadows are not classified as yes/no; they are assigned a "shadowness" between 0 and 1 based on their value relative to the threshold. Tolerance controls how steeply "shadowness" varies with value.
Highlights/Tolerance/Threshold
Same three controls for highlights.
Radius (R=2 ... R=64)
Radius of blur applied to determine local context for shadow/highlight detection. Results are fairly insensitive to this control, though you may want to adjust it if you notice haloes around edges adjacent to large areas of constant intensity. Note that this control is not fully scale aware, so if you're adjusting it it's best to zoom the preview to 100%.
Method (Value, Luminance, RGB)
Method of shadow determination. Value considers an R G and B together with equal weight. Luminance uses a weighted average (green is about 70% of perceived luminance). RGB processes channels independently, which may help remove color casts in shadows but also tends to move things toward gray.
Function (Multiplicative, Gamma, Local Contrast)
Method of shadow/highlight adjustment. Multiplicative boosts values by a simple multiple; generally this works well. Gamma makes separate gamma adjustments for highlights and shadows; this can work well for recovering deep shadows, but usually noise will make the results unattractive. Local contrast boost contrast in highlights or shadows the way unsharp masking with a large radius does. This may push some highlights or shadows off the end of the histogram; if so, you can create a little room with a levels adjustment before running this filter.
Mode (Normal, Diagnostic-blur, Diagnostic-change)
Controls display of normal result or diagnostic results. Blur shows the blur used to estimate local context; change shows the difference between the original and adjusted images.

Examples

The following examples illustrate the use of Luminosity. I made deliberately mild adjustments as I might do for a print, not dramatic eye-popping changes. Your mileage may vary.

Original image: Light shadow and highlight enhancement using the default settings:

Original (again): Default intensity of changes, but using Gamma function and RGB method. Note two differences: shadow recovery is a little stronger due to the gamma setting, and sky and deep shadows are a little less saturated, as RGB setting moves colors toward gray:


Original image: Filtered twice - first for shadow gamma to recover detail (shadows = 150; highlights = 100; function = gamma; defaults elsewhere), then for contrast enhancement in shadows (shadows = 150; highlights = 100; function = local contrast; defaults elsewhere)

License

Luminosity is copyright 2004 Thomas Fiddaman. Use and distribute it freely. Other rights reserved. Not for resale or commercial distribution without prior written permission.

Luminosity includes absolutely no warranty express or implied - use at your own risk. Don't oversave your originals (duh).

Download

Sorry, there's only a Windows version: Luminosity 0.1

Feedback

I'm continuing to work on this out of my own curiousity. Rather than emailing me, please contribute to the Sony forum discussion at DPreview - otherwise I'll get too distracted from real work. I'm particularly interested in cases where this fails but other methods work well, and pathological cases of problems like haloes or posterization.