Added new color toning method "L*a*b* regions"

Allows to specify various "regions" of the image with masks, and to correct
for hue, saturation and lightness.

Inspired by the existing L*a*b* grid (in turn taken from darktable)
This commit is contained in:
Alberto Griggio
2018-10-25 16:46:11 +02:00
parent eee6837385
commit 1a3fd9f157
18 changed files with 854 additions and 32 deletions

View File

@@ -141,6 +141,8 @@ void ParamsEdited::set(bool v)
colorToning.labgridBLow = v;
colorToning.labgridAHigh = v;
colorToning.labgridBHigh = v;
colorToning.labregions = v;
colorToning.labregionsShowMask = v;
sharpening.enabled = v;
sharpening.contrast = v;
@@ -699,6 +701,8 @@ void ParamsEdited::initFrom(const std::vector<rtengine::procparams::ProcParams>&
colorToning.labgridBLow = colorToning.labgridBLow && p.colorToning.labgridBLow == other.colorToning.labgridBLow;
colorToning.labgridAHigh = colorToning.labgridAHigh && p.colorToning.labgridAHigh == other.colorToning.labgridAHigh;
colorToning.labgridBHigh = colorToning.labgridBHigh && p.colorToning.labgridBHigh == other.colorToning.labgridBHigh;
colorToning.labregions = colorToning.labregions && p.colorToning.labregions == other.colorToning.labregions;
colorToning.labregionsShowMask = colorToning.labregionsShowMask && p.colorToning.labregionsShowMask == other.colorToning.labregionsShowMask;
sharpenEdge.enabled = sharpenEdge.enabled && p.sharpenEdge.enabled == other.sharpenEdge.enabled;
sharpenEdge.passes = sharpenEdge.passes && p.sharpenEdge.passes == other.sharpenEdge.passes;
sharpenEdge.amount = sharpenEdge.amount && p.sharpenEdge.amount == other.sharpenEdge.amount;
@@ -1571,6 +1575,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng
toEdit.colorToning.labgridBHigh = mods.colorToning.labgridBHigh;
}
if (colorToning.labregions) {
toEdit.colorToning.labregions = mods.colorToning.labregions;
}
if (colorToning.labregionsShowMask) {
toEdit.colorToning.labregionsShowMask = mods.colorToning.labregionsShowMask;
}
if (sharpenEdge.enabled) {
toEdit.sharpenEdge.enabled = mods.sharpenEdge.enabled;
}