Hi Heiko,

at first, the feathering using a guide filter works really great!
I've tried it with a recent portrait shooting and it delivers awesome
results for applying edits to the head independently from the background.

I also believe that a proper explanation would prevent confusion regarding
the inversion behavior.
However, I have concerns with respect to the usability, based on my initial
experience:
In most cases, I use the masks to apply a module either to my subject or to
the background individually.
Let's assume, for instance, that there's a portrait shoot where I like to
apply a tone curve to the subject and I also want to use color correction
on the background.
In order to achieve this, I usually create a mask for the subject first,
because it is easier and more reliable to create a mask for the subject
than for the background.
This is due to the fact that, when the colored mask overlay is activated,
it seems just easier for human vision to classify whether the subject is
covered by the mask than if a mask of the background does not cover parts
of the subject.
At this step, I can draw a coarse mask and then use feathering to obtain a
great result and apply the tone curve.
Then, however, in order to perform color correction of the background, I
like to reuse the mask for the subject, apply the same contrast and
brightness parameters and simply invert it in order to obtain a mask for
the background that is complementary to the subject mask.
This is not possible with the current implementation, as brightness and
contrast have to be adjusted.

So, aside from the better conformity with the user's intuitive
understanding, maybe inverting the mask at the end of the pipeline would
benefit usability.

There is a second point I noticed:
Especially when using the mask with hair, after proper adjustment of
brightness and saturation in order to match the edges well, the mask is
rather sharp and thus, for most modules, the edges of small structures as
well as soft edges do not look good.
I would like to apply a gaussian blur to the mask after feathering.
Also, I am not sure whether the brightness and contrast provide a real
benefit for the gaussian blur.
Hence, I wonder whether it could be useful to not have either gaussian blur
or feathering, but simply have the feathering with its options first,
followed by a slider for gaussian blur?

Again, thank you for the great work!
Bjoern

Am Sa., 10. Nov. 2018 um 00:37 Uhr schrieb Heiko Bauke <heiko.ba...@mail.de
>:

> Hi,
>
> currently I have an open pull request, see
> https://github.com/darktable-org/darktable/pull/1809
>
> This pull request has some aspect which may lead to confusion by some
> users in some situations.  I would like to draw your attention to this
> issue and would be thankful for feedback.
>
> The pull request adds some further means to adjust drawn and parametric
> masks.  To explain what the possible problem is, I have to sketch how
> blending mask adjustment works currently. Currently we have only
>
> * the global opacity parameter,
>
> * the option to invert the mask (taking into account the global opacity
> parameter),
>
> * and a Gaussian blur filter to smooth the mask.
>
> The blend method currently takes the raw drawn or parametric mask and
>
> * adjusts its opacity and inverts the mask and
>
> * applies the Gaussian filter afterwards(!).
>
> The nice feature of these two steps is that they commute.  This is the
> reason why when a user chooses a non-zero radius of the Gaussian blur
> filter first and inverts the mask afterwards he/she gets the inverted
> version of the mask he/she has seen before.
>
> Now the pull request adds
>
> * a feathering filter which can be applied alternatively to the Gaussian
> filter and
>
> * a mask tone-curve which is parameterized by two parameters, mask
> brightness and mask contrast.
>
> The tone-curve has been introduced to be able to post-process the mask
> after application of the feathering filter but should be useful in
> general.  On default (both parameters zero), the tone-curve is just a
> one-to-one mapping, i.e., it has no effect.
>
> Note that the application of a tone curve to the mask and inverting the
> mask are two operations which do not commute.  The order matters here.
> If a user adjusts the mask tone-curve parameters first and then inverts
> the mask, the resulting mask will not(!) be the inverse of what the user
> has seen before.  This might lead to some confusion.
>
> Confusion can be avoided by properly explaining how the new feature
> works.  But possibly one should revise the whole mask processing such
> that mask inversion comes last such that toggling the 'invert mask'
> button actually inverts the blend mask with respect to what the user
> sees in the UI when 'display mask' is active.  This means, the function
> _blend_make_mask would be called much later.
>
> For me the current processing is fine because I understand how it works.
>   However, inverting the mask at the very end just before the
> application of the mask appears more natural to me.  Any thoughts?
>
>
> Heiko
>
>
> PS: While I was writing his mail, my pull request made it into main.
>
> --
> -- Number Crunch Blog @ https://www.numbercrunch.de
> --  Cluster Computing @ https://www.clustercomputing.de
> --  Social Networking @ https://www.researchgate.net/profile/Heiko_Bauke
> ___________________________________________________________________________
> darktable developer mailing list
> to unsubscribe send a mail to
> darktable-dev+unsubscr...@lists.darktable.org
>
>

___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to