Partial paste support for gradient sharpening, microcotrast and raw black levels
This commit is contained in:
@@ -508,6 +508,7 @@ PARTIALPASTE_FLATFIELDAUTOSELECT;FF Auto Select
|
||||
PARTIALPASTE_FLATFIELDBLURRADIUS;FF Blur Radius
|
||||
PARTIALPASTE_FLATFIELDBLURTYPE;FF Blur Type
|
||||
PARTIALPASTE_FLATFIELDFILE;Flat field (FF) File
|
||||
PARTIALPASTE_GRADIENTSHARPEN;Gradient Sharpening (border)
|
||||
PARTIALPASTE_HLRECONSTRUCTION;Highlight reconstruction
|
||||
PARTIALPASTE_HLRECOVERY;Highlight recovery
|
||||
PARTIALPASTE_HLRECOVERYAMOUNT;Highlight recovery amount
|
||||
@@ -521,6 +522,7 @@ PARTIALPASTE_LENSGROUP;Lens related settings
|
||||
PARTIALPASTE_LUMADENOISE;Luminance noise reduction
|
||||
PARTIALPASTE_LUMINANCEGROUP;Luminance related settings
|
||||
PARTIALPASTE_METAICMGROUP;Metadata/ICM settings
|
||||
PARTIALPASTE_MICROCONTRAST;Microcontrast
|
||||
PARTIALPASTE_PERSPECTIVE;Perspective
|
||||
PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration
|
||||
PARTIALPASTE_PREPROCESS_HOTDEADPIXFILT;Apply hot/dead pixel filter
|
||||
@@ -529,6 +531,7 @@ PARTIALPASTE_RAWCACORR_AUTO;CA auto correction
|
||||
PARTIALPASTE_RAWCACORR_CABLUE;CA Blue
|
||||
PARTIALPASTE_RAWCACORR_CARED;CA Red
|
||||
PARTIALPASTE_RAWEXPOS_LINEAR;Raw white point linear corr. factor
|
||||
PARTIALPASTE_RAWEXPOS_BLACK;Black Level
|
||||
PARTIALPASTE_RAWEXPOS_PRESER;Raw white point HL preserving corr. (EV)
|
||||
PARTIALPASTE_RAWGROUP;Raw settings
|
||||
PARTIALPASTE_RAW_DCBENHANCE;Apply DCB enhancement step
|
||||
@@ -538,7 +541,7 @@ PARTIALPASTE_RAW_FALSECOLOR;Demosaic False color suppression steps
|
||||
PARTIALPASTE_RESIZE;Resize
|
||||
PARTIALPASTE_ROTATION;Rotation
|
||||
PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/Highlights
|
||||
PARTIALPASTE_SHARPENING;Sharpening
|
||||
PARTIALPASTE_SHARPENING;Sharpening (USM/RL)
|
||||
PARTIALPASTE_VIGNETTING;Vignetting correction
|
||||
PARTIALPASTE_WAVELETEQUALIZER;Wavelet equalizer
|
||||
PARTIALPASTE_WHITEBALANCE;White balance
|
||||
|
@@ -43,7 +43,9 @@ PartialPasteDlg::PartialPasteDlg () {
|
||||
|
||||
// options in detail:
|
||||
sharpen = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SHARPENING")));
|
||||
impden = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_IMPULSEDENOISE")));
|
||||
gradsharpen = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_GRADIENTSHARPEN")));
|
||||
microcontrast = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_MICROCONTRAST")));
|
||||
impden = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_IMPULSEDENOISE")));
|
||||
//lumaden = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_LUMADENOISE")));
|
||||
dirpyreq = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_DIRPYREQUALIZER")));
|
||||
//waveq = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_WAVELETEQUALIZER")));
|
||||
@@ -78,6 +80,7 @@ PartialPasteDlg::PartialPasteDlg () {
|
||||
// options in raw:
|
||||
raw_expos = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWEXPOS_LINEAR")));
|
||||
raw_preser = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWEXPOS_PRESER")));
|
||||
raw_black = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWEXPOS_BLACK")));
|
||||
raw_ca_autocorrect = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWCACORR_AUTO")));
|
||||
raw_cared = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWCACORR_CARED")));
|
||||
raw_cablue = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAWCACORR_CABLUE")));
|
||||
@@ -114,6 +117,8 @@ PartialPasteDlg::PartialPasteDlg () {
|
||||
vboxes[1]->pack_start (*detail, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[1]->pack_start (*hseps[1], Gtk::PACK_SHRINK, 2);
|
||||
vboxes[1]->pack_start (*sharpen, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[1]->pack_start (*gradsharpen, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[1]->pack_start (*microcontrast, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[1]->pack_start (*impden, Gtk::PACK_SHRINK, 2);
|
||||
//vboxes[1]->pack_start (*lumaden, Gtk::PACK_SHRINK, 2);
|
||||
//vboxes[1]->pack_start (*colorden, Gtk::PACK_SHRINK, 2);
|
||||
@@ -156,17 +161,23 @@ PartialPasteDlg::PartialPasteDlg () {
|
||||
vboxes[6]->pack_start (*raw_ccSteps, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*raw_dcb_iterations, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*raw_dcb_enhance, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0);
|
||||
vboxes[6]->pack_start (*raw_linenoise, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*raw_greenthresh, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*raw_hotdeadpix_filt, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0);
|
||||
vboxes[6]->pack_start (*raw_expos, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*raw_preser, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*raw_black, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0);
|
||||
vboxes[6]->pack_start (*df_file, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*df_AutoSelect, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0);
|
||||
vboxes[6]->pack_start (*ff_file, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*ff_AutoSelect, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*ff_BlurType, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*ff_BlurRadius, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0);
|
||||
vboxes[6]->pack_start (*raw_ca_autocorrect, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*raw_cared, Gtk::PACK_SHRINK, 2);
|
||||
vboxes[6]->pack_start (*raw_cablue, Gtk::PACK_SHRINK, 2);
|
||||
@@ -220,6 +231,8 @@ PartialPasteDlg::PartialPasteDlg () {
|
||||
labcurveConn = labcurve->signal_toggled().connect (sigc::bind (sigc::mem_fun(*basic, &Gtk::CheckButton::set_inconsistent), true));
|
||||
|
||||
sharpenConn = sharpen->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
|
||||
gradsharpenConn = gradsharpen->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
|
||||
microcontrastConn = microcontrast->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
|
||||
impdenConn = impden->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
|
||||
//lumadenConn = lumaden->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
|
||||
//colordenConn = colorden->signal_toggled().connect (sigc::bind (sigc::mem_fun(*detail, &Gtk::CheckButton::set_inconsistent), true));
|
||||
@@ -254,6 +267,7 @@ PartialPasteDlg::PartialPasteDlg () {
|
||||
raw_dcb_enhanceConn = raw_dcb_enhance->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true));
|
||||
raw_exposConn = raw_expos->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true));
|
||||
raw_preserConn = raw_preser->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true));
|
||||
raw_blackConn = raw_black->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true));
|
||||
raw_ca_autocorrectConn = raw_ca_autocorrect->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true));
|
||||
raw_caredConn = raw_cared->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true));
|
||||
raw_cablueConn = raw_cablue->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true));
|
||||
@@ -321,6 +335,7 @@ void PartialPasteDlg::rawToggled () {
|
||||
raw_dcb_enhanceConn.block (true);
|
||||
raw_exposConn.block (true);
|
||||
raw_preserConn.block (true);
|
||||
raw_blackConn.block (true);
|
||||
raw_ca_autocorrectConn.block (true);
|
||||
raw_caredConn.block (true);
|
||||
raw_cablueConn.block (true);
|
||||
@@ -342,6 +357,7 @@ void PartialPasteDlg::rawToggled () {
|
||||
raw_dcb_enhance->set_active (raw->get_active ());
|
||||
raw_expos->set_active (raw->get_active ());
|
||||
raw_preser->set_active (raw->get_active ());
|
||||
raw_black->set_active (raw->get_active ());
|
||||
raw_ca_autocorrect->set_active (raw->get_active ());
|
||||
raw_cared->set_active (raw->get_active ());
|
||||
raw_cablue->set_active (raw->get_active ());
|
||||
@@ -361,6 +377,7 @@ void PartialPasteDlg::rawToggled () {
|
||||
raw_dcb_enhanceConn.block (false);
|
||||
raw_exposConn.block (false);
|
||||
raw_preserConn.block (false);
|
||||
raw_blackConn.block (false);
|
||||
raw_ca_autocorrectConn.block (false);
|
||||
raw_caredConn.block (false);
|
||||
raw_cablueConn.block (false);
|
||||
@@ -401,7 +418,9 @@ void PartialPasteDlg::basicToggled () {
|
||||
void PartialPasteDlg::detailToggled () {
|
||||
|
||||
sharpenConn.block (true);
|
||||
impdenConn.block (true);
|
||||
gradsharpenConn.block(true);
|
||||
microcontrastConn.block(true);
|
||||
impdenConn.block (true);
|
||||
dirpyrdenConn.block (true);
|
||||
//lumadenConn.block (true);
|
||||
//colordenConn.block (true);
|
||||
@@ -412,6 +431,8 @@ void PartialPasteDlg::detailToggled () {
|
||||
detail->set_inconsistent (false);
|
||||
|
||||
sharpen->set_active (detail->get_active ());
|
||||
gradsharpen->set_active (detail->get_active ());
|
||||
microcontrast->set_active (detail->get_active ());
|
||||
impden->set_active (detail->get_active ());
|
||||
dirpyrden->set_active (detail->get_active ());
|
||||
//lumaden->set_active (detail->get_active ());
|
||||
@@ -421,7 +442,9 @@ void PartialPasteDlg::detailToggled () {
|
||||
//waveq->set_active (detail->get_active ());
|
||||
|
||||
sharpenConn.block (false);
|
||||
impdenConn.block (false);
|
||||
gradsharpenConn.block(false);
|
||||
microcontrastConn.block(false);
|
||||
impdenConn.block (false);
|
||||
dirpyrdenConn.block (false);
|
||||
//lumadenConn.block (false);
|
||||
//colordenConn.block (false);
|
||||
@@ -520,6 +543,18 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dst, const r
|
||||
if (labcurve->get_active ()) dst->labCurve = src->labCurve;
|
||||
|
||||
if (sharpen->get_active ()) dst->sharpening = src->sharpening;
|
||||
if (gradsharpen->get_active ()){
|
||||
dst->clarity.enabled = src->clarity.enabled;
|
||||
dst->clarity.clstrength = src->clarity.clstrength;
|
||||
dst->clarity.clpasses = src->clarity.clpasses;
|
||||
dst->clarity.clthreechannels = src->clarity.clthreechannels;
|
||||
}
|
||||
if (microcontrast->get_active ()){
|
||||
dst->clarity.enabledtwo = src->clarity.enabledtwo;
|
||||
dst->clarity.MLmicromatrix = src->clarity.MLmicromatrix;
|
||||
dst->clarity.mlstrength = src->clarity.mlstrength;
|
||||
dst->clarity.uniformity = src->clarity.uniformity;
|
||||
}
|
||||
if (impden->get_active ()) dst->impulseDenoise = src->impulseDenoise;
|
||||
//if (lumaden->get_active ()) dst->lumaDenoise = src->lumaDenoise;
|
||||
if (dirpyreq->get_active ()) dst->dirpyrequalizer = src->dirpyrequalizer;
|
||||
@@ -554,6 +589,13 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dst, const r
|
||||
if (raw_dcb_enhance->get_active ()) dst->raw.dcb_enhance =src->raw.dcb_enhance;
|
||||
if (raw_expos->get_active ()) dst->raw.expos =src->raw.expos;
|
||||
if (raw_preser->get_active ()) dst->raw.preser =src->raw.preser;
|
||||
if (raw_black->get_active ()){
|
||||
dst->raw.blackzero =src->raw.blackzero;
|
||||
dst->raw.blackone =src->raw.blackone;
|
||||
dst->raw.blacktwo =src->raw.blacktwo;
|
||||
dst->raw.blackthree =src->raw.blackthree;
|
||||
dst->raw.twogreen =src->raw.twogreen;
|
||||
}
|
||||
if (raw_ca_autocorrect->get_active ()) dst->raw.ca_autocorrect =src->raw.ca_autocorrect;
|
||||
if (raw_cared->get_active ()) dst->raw.cared =src->raw.cared;
|
||||
if (raw_cablue->get_active ()) dst->raw.cablue =src->raw.cablue;
|
||||
|
@@ -46,6 +46,8 @@ class PartialPasteDlg : public Gtk::Dialog {
|
||||
|
||||
// options in detail:
|
||||
Gtk::CheckButton* sharpen;
|
||||
Gtk::CheckButton* gradsharpen;
|
||||
Gtk::CheckButton* microcontrast;
|
||||
Gtk::CheckButton* impden;
|
||||
Gtk::CheckButton* lumaden;
|
||||
Gtk::CheckButton* waveq;
|
||||
@@ -81,6 +83,7 @@ class PartialPasteDlg : public Gtk::Dialog {
|
||||
// options in raw:
|
||||
Gtk::CheckButton* raw_expos;
|
||||
Gtk::CheckButton* raw_preser;
|
||||
Gtk::CheckButton* raw_black;
|
||||
Gtk::CheckButton* raw_ca_autocorrect;
|
||||
Gtk::CheckButton* raw_cared;
|
||||
Gtk::CheckButton* raw_cablue;
|
||||
@@ -101,13 +104,13 @@ class PartialPasteDlg : public Gtk::Dialog {
|
||||
sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaicmConn, rawConn;;
|
||||
|
||||
sigc::connection wbConn, exposureConn, hlrecConn, shConn, labcurveConn;
|
||||
sigc::connection sharpenConn, impdenConn, lumadenConn, dirpyrdenConn, colordenConn, waveqConn, defringeConn, dirpyreqConn;
|
||||
sigc::connection sharpenConn, gradsharpenConn, microcontrastConn, impdenConn, lumadenConn, dirpyrdenConn, colordenConn, waveqConn, defringeConn, dirpyreqConn;
|
||||
sigc::connection chmixerConn, colorshiftConn, colorboostConn, hsveqConn;
|
||||
sigc::connection distortionConn, cacorrConn, vignettingConn;
|
||||
sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, perspectiveConn, commonTransConn;
|
||||
sigc::connection exifchConn, iptcConn, icmConn;
|
||||
sigc::connection df_fileConn, df_AutoSelectConn, ff_fileConn, ff_AutoSelectConn, ff_BlurRadiusConn, ff_BlurTypeConn;
|
||||
sigc::connection raw_caredConn, raw_cablueConn, raw_ca_autocorrectConn, raw_hotdeadpix_filtConn, raw_linenoiseConn, raw_greenthreshConn, raw_ccStepsConn, raw_dmethodConn, raw_dcb_iterationsConn, raw_dcb_enhanceConn, raw_exposConn, raw_preserConn;
|
||||
sigc::connection raw_caredConn, raw_cablueConn, raw_ca_autocorrectConn, raw_hotdeadpix_filtConn, raw_linenoiseConn, raw_greenthreshConn, raw_ccStepsConn, raw_dmethodConn, raw_dcb_iterationsConn, raw_dcb_enhanceConn, raw_exposConn, raw_preserConn, raw_blackConn;
|
||||
|
||||
public:
|
||||
PartialPasteDlg ();
|
||||
|
Reference in New Issue
Block a user