Show Sobel-Canny structure
This commit is contained in:
@@ -2037,6 +2037,7 @@ TP_LOCALLAB_SHOWMNONE;None
|
||||
TP_LOCALLAB_SHOWMODIF;Show modifications whithout mask
|
||||
TP_LOCALLAB_SHOWMODIFMASK;Show modifications whith mask
|
||||
TP_LOCALLAB_SHOWMASK;Show mask
|
||||
TP_LOCALLAB_SHOWSTRUC;Show structure
|
||||
TP_LOCALLAB_USEMASK;Use mask
|
||||
TP_LOCALLAB_SOFT;Soft Light
|
||||
TP_LOCALLAB_STRENG;Strength
|
||||
|
||||
@@ -402,6 +402,8 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.showmaskcolmet = 3;
|
||||
} else if (locallab.spots.at(sp).showmaskcolMethod == "showmask") {
|
||||
lp.showmaskcolmet = 4;
|
||||
} else if (locallab.spots.at(sp).showmaskcolMethod == "showstruc") {
|
||||
lp.showmaskcolmet = 5;
|
||||
}
|
||||
|
||||
if (locallab.spots.at(sp).showmaskexpMethod == "none") {
|
||||
@@ -414,6 +416,8 @@ static void calcLocalParams(int sp, int oW, int oH, const LocallabParams& locall
|
||||
lp.showmaskexpmet = 3;
|
||||
} else if (locallab.spots.at(sp).showmaskexpMethod == "showmask") {
|
||||
lp.showmaskexpmet = 4;
|
||||
} else if (locallab.spots.at(sp).showmaskexpMethod == "showstruc") {
|
||||
lp.showmaskexpmet = 5;
|
||||
}
|
||||
|
||||
|
||||
@@ -5119,7 +5123,7 @@ void ImProcFunctions::Expo_vibr_Local(float moddE, float powdE, int senstype, La
|
||||
LabImage *origblurmask = nullptr;
|
||||
|
||||
float radius = 3.f / sk;
|
||||
bool usemask = lp.showmaskexpmet >= 2 && senstype == 1;
|
||||
bool usemask = (lp.showmaskexpmet == 2 || lp.showmaskexpmet == 3 || lp.showmaskexpmet == 4) && senstype == 1;
|
||||
if (usemask) {
|
||||
origblurmask = new LabImage(GW, GH);
|
||||
|
||||
@@ -5663,7 +5667,7 @@ void ImProcFunctions::Expo_vibr_Local(float moddE, float powdE, int senstype, La
|
||||
|
||||
}
|
||||
delete origblur;
|
||||
if (lp.showmaskcolmet >= 2 && senstype == 1) {
|
||||
if ((lp.showmaskcolmet == 2 || lp.showmaskcolmet == 3 || lp.showmaskcolmet == 4)&& senstype == 1) {
|
||||
delete origblurmask;
|
||||
}
|
||||
|
||||
@@ -5763,7 +5767,7 @@ void ImProcFunctions::ColorLight_Local(float moddE, float powdE, int call, LabIm
|
||||
|
||||
|
||||
float radius = 3.f / sk;
|
||||
if (lp.showmaskcolmet >= 2) {
|
||||
if (lp.showmaskcolmet == 2 || lp.showmaskcolmet == 3 || lp.showmaskcolmet == 4) {
|
||||
origblurmask = new LabImage(GW, GH);
|
||||
|
||||
#ifdef _OPENMP
|
||||
@@ -5880,7 +5884,7 @@ void ImProcFunctions::ColorLight_Local(float moddE, float powdE, int call, LabIm
|
||||
if(lp.struco > 0.f && rs > 0.f) {
|
||||
rsob = 1.1f * lp.struco * (rs);
|
||||
}
|
||||
if (lp.showmaskcolmet >= 2) {
|
||||
if (lp.showmaskcolmet == 2 || lp.showmaskcolmet == 3 || lp.showmaskcolmet == 4) {
|
||||
rhuemask = xatan2f(origblurmask->b[y][x], origblurmask->a[y][x]);
|
||||
rchromask = sqrt(SQR(origblurmask->b[y][x]) + SQR(origblurmask->a[y][x])) / 327.68f;
|
||||
rLmask = origblurmask->L[y][x] / 327.68f;
|
||||
@@ -6590,7 +6594,7 @@ void ImProcFunctions::ColorLight_Local(float moddE, float powdE, int call, LabIm
|
||||
}
|
||||
|
||||
delete origblur;
|
||||
if (lp.showmaskcolmet >= 2) {
|
||||
if (lp.showmaskcolmet == 2 || lp.showmaskcolmet == 3 || lp.showmaskcolmet == 4) {
|
||||
delete origblurmask;
|
||||
}
|
||||
}
|
||||
@@ -10111,7 +10115,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
|
||||
//local color and light
|
||||
|
||||
if (!lp.inv && (lp.chro != 0 || lp.ligh != 0.f || lp.cont != 0 || lp.qualcurvemet != 0 || lp.showmaskcolmet >= 2) && lp.colorena) { // || lllocalcurve)) { //interior ellipse renforced lightness and chroma //locallutili
|
||||
if (!lp.inv && (lp.chro != 0 || lp.ligh != 0.f || lp.cont != 0 || lp.qualcurvemet != 0 || lp.showmaskcolmet == 2 || lp.showmaskcolmet == 3 || lp.showmaskcolmet == 4) && lp.colorena) { // || lllocalcurve)) { //interior ellipse renforced lightness and chroma //locallutili
|
||||
float hueplus = hueref + dhue;
|
||||
float huemoins = hueref - dhue;
|
||||
|
||||
@@ -10259,6 +10263,34 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
}
|
||||
delete[] tmL;
|
||||
}
|
||||
if (lp.showmaskcolmet == 5) {
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for schedule(dynamic,16)
|
||||
#endif
|
||||
|
||||
for (int y = 0; y < transformed->H ; y++) //{
|
||||
for (int x = 0; x < transformed->W; x++) {
|
||||
int lox = cx + x;
|
||||
int loy = cy + y;
|
||||
int zone = 0;
|
||||
float localFactor = 1.f;
|
||||
const float achm = (float)lp.trans / 100.f;
|
||||
|
||||
if (lp.shapmet == 0) {
|
||||
calcTransition(lox, loy, achm, lp, zone, localFactor);
|
||||
} else if (lp.shapmet == 1) {
|
||||
calcTransitionrect(lox, loy, achm, lp, zone, localFactor);
|
||||
}
|
||||
|
||||
if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) {
|
||||
if(zone > 0) {
|
||||
transformed->L[y][x] = blend2[loy - begy][lox - begx];
|
||||
transformed->a[y][x] = 0.f;
|
||||
transformed->b[y][x] = 0.f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -10295,7 +10327,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
float kmaskHa = 0;
|
||||
float kmaskHb = 0;
|
||||
|
||||
if (lp.showmaskcolmet >= 2) {
|
||||
if (lp.showmaskcolmet == 2 || lp.showmaskcolmet == 3 || lp.showmaskcolmet == 4) {
|
||||
|
||||
if (locllmasCurve) {
|
||||
valLL = (float)(locllmasCurve[500.f * (bufcolorig->L[loy - begy][lox - begx]) / 32768.f]);
|
||||
@@ -10342,7 +10374,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
|
||||
float radiusb = 3.f / sk;
|
||||
|
||||
if (lp.showmaskcolmet >= 2) {
|
||||
if (lp.showmaskcolmet == 2 || lp.showmaskcolmet == 3 || lp.showmaskcolmet == 4) {
|
||||
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel
|
||||
@@ -10423,7 +10455,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
|
||||
|
||||
|
||||
if (lp.showmaskcolmet != 4) {
|
||||
if (lp.showmaskcolmet == 0 || lp.showmaskcolmet == 1 || lp.showmaskcolmet == 2 || lp.showmaskcolmet == 3) {
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for schedule(dynamic,16)
|
||||
#endif
|
||||
@@ -10434,9 +10466,6 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
int loy = cy + y;
|
||||
|
||||
if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) {
|
||||
// bufcolorig->L[loy - begy][lox - begx] = original->L[y][x];//fill square buffer with datas
|
||||
// bufcolorig->a[loy - begy][lox - begx] = original->a[y][x];//fill square buffer with datas
|
||||
// bufcolorig->b[loy - begy][lox - begx] = original->b[y][x];//fill square buffer with datas
|
||||
chpro = 0.f;
|
||||
|
||||
//Chroma curve
|
||||
@@ -10563,7 +10592,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
|
||||
|
||||
|
||||
if (lp.exposena && (lp.expcomp != 0.f || lp.war != 0 || lp.showmaskexpmet >= 2 || (exlocalcurve && localexutili))) { //interior ellipse renforced lightness and chroma //locallutili
|
||||
if (lp.exposena && (lp.expcomp != 0.f || lp.war != 0 || lp.showmaskexpmet == 2 || lp.showmaskexpmet == 3 || lp.showmaskexpmet == 4 || (exlocalcurve && localexutili))) { //interior ellipse renforced lightness and chroma //locallutili
|
||||
float hueplus = hueref + dhueex;
|
||||
float huemoins = hueref - dhueex;
|
||||
|
||||
@@ -10703,6 +10732,35 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
delete[] tmL;
|
||||
}
|
||||
|
||||
if (lp.showmaskexpmet == 5) {
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for schedule(dynamic,16)
|
||||
#endif
|
||||
|
||||
for (int y = 0; y < transformed->H ; y++)
|
||||
for (int x = 0; x < transformed->W; x++) {
|
||||
int lox = cx + x;
|
||||
int loy = cy + y;
|
||||
int zone = 0;
|
||||
float localFactor = 1.f;
|
||||
const float achm = (float)lp.trans / 100.f;
|
||||
|
||||
if (lp.shapmet == 0) {
|
||||
calcTransition(lox, loy, achm, lp, zone, localFactor);
|
||||
} else if (lp.shapmet == 1) {
|
||||
calcTransitionrect(lox, loy, achm, lp, zone, localFactor);
|
||||
}
|
||||
|
||||
if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) {
|
||||
if(zone > 0) {
|
||||
transformed->L[y][x] = blend2[loy - begy][lox - begx];
|
||||
transformed->a[y][x] = 0.f;
|
||||
transformed->b[y][x] = 0.f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -10731,7 +10789,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
float valCC = 0.f;
|
||||
float2 sincosval;
|
||||
|
||||
if (lp.showmaskexpmet >= 2) {
|
||||
if (lp.showmaskexpmet == 2 || lp.showmaskexpmet == 3 || lp.showmaskexpmet == 4) {
|
||||
if (locllmasexpCurve) {
|
||||
valLL = (float)(locllmasexpCurve[500.f * (bufexporig->L[loy - begy][lox - begx]) / 32768.f]);
|
||||
valLL = 1.f - valLL;
|
||||
@@ -10754,7 +10812,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
|
||||
float radiusb = 3.f / sk;
|
||||
|
||||
if (lp.showmaskexpmet >= 2) {
|
||||
if (lp.showmaskexpmet == 2 || lp.showmaskexpmet == 3 || lp.showmaskexpmet == 4) {
|
||||
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel
|
||||
@@ -10834,7 +10892,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
||||
}
|
||||
|
||||
|
||||
if (lp.showmaskexpmet != 4) {
|
||||
if (lp.showmaskexpmet == 0 || lp.showmaskexpmet == 1 || lp.showmaskexpmet == 2 || lp.showmaskexpmet == 3) {
|
||||
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel for schedule(dynamic,16)
|
||||
|
||||
@@ -234,6 +234,7 @@ Locallab::Locallab():
|
||||
showmaskcolMethod->append(M("TP_LOCALLAB_SHOWMODIFMASK"));
|
||||
showmaskcolMethod->append(M("TP_LOCALLAB_USEMASK"));
|
||||
showmaskcolMethod->append(M("TP_LOCALLAB_SHOWMASK"));
|
||||
showmaskcolMethod->append(M("TP_LOCALLAB_SHOWSTRUC"));
|
||||
|
||||
showmaskcolMethod->set_active(0);
|
||||
showmaskcolMethod->set_tooltip_markup(M("TP_LOCALLAB_SHOWMASKCOL_TOOLTIP"));
|
||||
@@ -393,6 +394,7 @@ Locallab::Locallab():
|
||||
showmaskexpMethod->append(M("TP_LOCALLAB_SHOWMODIFMASK"));
|
||||
showmaskexpMethod->append(M("TP_LOCALLAB_USEMASK"));
|
||||
showmaskexpMethod->append(M("TP_LOCALLAB_SHOWMASK"));
|
||||
showmaskexpMethod->append(M("TP_LOCALLAB_SHOWSTRUC"));
|
||||
|
||||
showmaskexpMethod->set_active(0);
|
||||
showmaskexpMethod->set_tooltip_markup(M("TP_LOCALLAB_SHOWMASKCOL_TOOLTIP"));
|
||||
@@ -1501,6 +1503,8 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->locallab.spots.at(pp->locallab.selspot).showmaskcolMethod = "mask";
|
||||
} else if (showmaskcolMethod->get_active_row_number() == 4) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).showmaskcolMethod = "showmask";
|
||||
} else if (showmaskcolMethod->get_active_row_number() == 5) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).showmaskcolMethod = "showstruc";
|
||||
}
|
||||
|
||||
pp->locallab.spots.at(pp->locallab.selspot).llcurve = llshape->getCurve();
|
||||
@@ -1532,6 +1536,8 @@ void Locallab::write(ProcParams* pp, ParamsEdited* pedited)
|
||||
pp->locallab.spots.at(pp->locallab.selspot).showmaskexpMethod = "mask";
|
||||
} else if (showmaskexpMethod->get_active_row_number() == 4) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).showmaskexpMethod = "showmask";
|
||||
} else if (showmaskexpMethod->get_active_row_number() == 5) {
|
||||
pp->locallab.spots.at(pp->locallab.selspot).showmaskexpMethod = "showstruc";
|
||||
}
|
||||
pp->locallab.spots.at(pp->locallab.selspot).LLmaskexpcurve = LLmaskexpshape->getCurve();
|
||||
pp->locallab.spots.at(pp->locallab.selspot).CCmaskexpcurve = CCmaskexpshape->getCurve();
|
||||
@@ -2156,7 +2162,7 @@ void Locallab::qualitycurveMethodChanged()
|
||||
|
||||
void Locallab::showmaskcolMethodChanged()
|
||||
{
|
||||
if((showmaskcolMethod->get_active_row_number() == 1 || showmaskcolMethod->get_active_row_number() == 2 || showmaskcolMethod->get_active_row_number() == 4) && expcolor->getEnabled()) {
|
||||
if((showmaskcolMethod->get_active_row_number() == 1 || showmaskcolMethod->get_active_row_number() == 2 || showmaskcolMethod->get_active_row_number() == 4 || showmaskcolMethod->get_active_row_number() == 5) && expcolor->getEnabled()) {
|
||||
showmaskexpMethod->set_active(0);
|
||||
expexpose->setEnabled(false);
|
||||
}
|
||||
@@ -2171,7 +2177,7 @@ void Locallab::showmaskcolMethodChanged()
|
||||
void Locallab::showmaskexpMethodChanged()
|
||||
{
|
||||
|
||||
if((showmaskexpMethod->get_active_row_number() == 1 || showmaskexpMethod->get_active_row_number() == 2 || showmaskexpMethod->get_active_row_number() == 4) && expexpose->getEnabled()) {
|
||||
if((showmaskexpMethod->get_active_row_number() == 1 || showmaskexpMethod->get_active_row_number() == 2 || showmaskexpMethod->get_active_row_number() == 4 || showmaskexpMethod->get_active_row_number() == 5) && expexpose->getEnabled()) {
|
||||
showmaskcolMethod->set_active(0);
|
||||
expcolor->setEnabled(false);
|
||||
}
|
||||
@@ -3500,6 +3506,8 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
showmaskcolMethod->set_active(3);
|
||||
} else if (pp->locallab.spots.at(index).showmaskcolMethod == "showmask") {
|
||||
showmaskcolMethod->set_active(4);
|
||||
} else if (pp->locallab.spots.at(index).showmaskcolMethod == "showstruc") {
|
||||
showmaskcolMethod->set_active(5);
|
||||
}
|
||||
llshape->setCurve(pp->locallab.spots.at(index).llcurve);
|
||||
ccshape->setCurve(pp->locallab.spots.at(index).cccurve);
|
||||
@@ -3531,6 +3539,8 @@ void Locallab::updateLocallabGUI(const rtengine::procparams::ProcParams* pp, con
|
||||
showmaskexpMethod->set_active(3);
|
||||
} else if (pp->locallab.spots.at(index).showmaskexpMethod == "showmask") {
|
||||
showmaskexpMethod->set_active(4);
|
||||
} else if (pp->locallab.spots.at(index).showmaskexpMethod == "showstruc") {
|
||||
showmaskexpMethod->set_active(5);
|
||||
}
|
||||
CCmaskexpshape->setCurve(pp->locallab.spots.at(index).CCmaskexpcurve);
|
||||
LLmaskexpshape->setCurve(pp->locallab.spots.at(index).LLmaskexpcurve);
|
||||
@@ -3893,14 +3903,14 @@ void Locallab::updateSpecificGUIState()
|
||||
//update showmethod
|
||||
if (multiImage && showmaskcolMethod->get_active_text() == M("GENERAL_UNCHANGED")) {
|
||||
showmaskexpMethod->set_active(0);
|
||||
} else if((showmaskcolMethod->get_active_row_number() == 1 || showmaskcolMethod->get_active_row_number() == 2 || showmaskcolMethod->get_active_row_number() == 4)) {
|
||||
} else if((showmaskcolMethod->get_active_row_number() == 1 || showmaskcolMethod->get_active_row_number() == 2 || showmaskcolMethod->get_active_row_number() == 4 || showmaskcolMethod->get_active_row_number() == 5)) {
|
||||
showmaskexpMethod->set_active(0);
|
||||
expexpose->setEnabled(false);
|
||||
}
|
||||
|
||||
if (multiImage && showmaskexpMethod->get_active_text() == M("GENERAL_UNCHANGED")) {
|
||||
showmaskcolMethod->set_active(0);
|
||||
} else if((showmaskexpMethod->get_active_row_number() == 1 || showmaskexpMethod->get_active_row_number() == 2 || showmaskexpMethod->get_active_row_number() == 4)) {
|
||||
} else if((showmaskexpMethod->get_active_row_number() == 1 || showmaskexpMethod->get_active_row_number() == 2 || showmaskexpMethod->get_active_row_number() == 4 || showmaskexpMethod->get_active_row_number() == 5)) {
|
||||
showmaskcolMethod->set_active(0);
|
||||
expcolor->setEnabled(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user