Mark -
> My current book has subjects -- brightly colored lights taken at
> dusk and night -- where it is very important to retain as much of
> the color and saturation of highlights as possible. However, it is
> also important to avoid plugging the shadows too much -- printers
> don't like large areas of black with lots of ink, and in general it
> is bad photographic practice having large areas of a photo without
> texture.
Several ideas come into my mind.
(1) Utilize Enfuse's CIECAM-mode either by forcing it with option
`--ciecam' on input images w/o ICC profiles or, much better, feed
images into Enfuse that all have the same ICC profile. 16-bit per
channel in conjunction with the ProPhoto RGB space are promising.
However, CIECAM-mode is broken with newer versions of the
LittleCMS library. Preliminary fixes have been applied to the
development branch ("compressor road"), but not yet to the
stable branch.
(2) Play with the `--exposure-cutoff' option, which was designed to
tame extreme over- or underexposure. Usually one can leave this
option's gray projectors alone.
(3) The current development version of Enfuse offers user-defined
exposure weighting functions. So, either given enough
C++-programming proficiency or a grumpy, greasy, growling hacker
near you, almost any exposure weight is possible.
> To preserve my highlights, I am attempting to use the l-star gray
> projector, but am finding lots of green dots in the shadows. I've
> searched through these forums for an answer to this, but I haven't
> found a specific answer to avoid this.
These are more or less expected artifacts from non-CIECAM
blending, which in fact is RGB-cube blending without any sensible
limiting. Working inside the RGB cube is fast and good enough for
most Enfuse users most of the time, though.
Because of changes in the LCMS library, we depend on in CIECAM mode,
brightly colored pixel artifacts sometimes show up there too, where
they should not. About half a dozen patches went into the current
development branch of Enblend and Enfuse to fix this problem. Still,
neither am I sure that the artifacts are gone, nor can I guarantee
that the next change to LCMS does not cause new trouble. Panta rhei.
> I did get the error:
terminate called after throwing an instance of 'std::runtime_error'
what(): Minimizer1D::set_bracket: minimum not bracketed
Abort trap: 6
> which I was able to avoid by using:
> --no-ciecam
Gee, that sucks! This exception is also related to changes to
LCMS; you ran into a "never reached" branch. I have completely
revamped this part of Enblend/Enfuse in a way that this problem never
occurs again. Instead a more general (but slower) optimizer will take
over.
HTH,
Chris