Fixed bug in mask curves
This commit is contained in:
@@ -7323,7 +7323,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
if (locllmasexpCurve && llmasexputili) {
|
if (locllmasexpCurve && llmasexputili) {
|
||||||
float ligh = (bufexporig->L[loy - begy][lox - begx]) / 32768.f;
|
float ligh = (bufexporig->L[loy - begy][lox - begx]) / 32768.f;
|
||||||
valLLexp = (float)(locllmasexpCurve[500.f * ligh]);
|
valLLexp = (float)(locllmasexpCurve[500.f * ligh]);
|
||||||
valLLexp = 1.f - valLLexp;
|
valLLexp = LIM01(1.f - valLLexp);
|
||||||
kmaskLexp = 32768.f * valLLexp;
|
kmaskLexp = 32768.f * valLLexp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7331,7 +7331,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float chromask = 0.0001f + (sqrt(SQR(bufexporig->a[loy - begy][lox - begx]) + SQR(bufexporig->b[loy - begy][lox - begx])));
|
float chromask = 0.0001f + (sqrt(SQR(bufexporig->a[loy - begy][lox - begx]) + SQR(bufexporig->b[loy - begy][lox - begx])));
|
||||||
float chromaskr = chromask / 45000.f;
|
float chromaskr = chromask / 45000.f;
|
||||||
valCC = float (locccmasexpCurve[500.f * chromaskr]);
|
valCC = float (locccmasexpCurve[500.f * chromaskr]);
|
||||||
valCC = 1.f - valCC;
|
valCC = LIM01(1.f - valCC);
|
||||||
kmaskCa = valCC;
|
kmaskCa = valCC;
|
||||||
kmaskCb = valCC;
|
kmaskCb = valCC;
|
||||||
}
|
}
|
||||||
@@ -7347,7 +7347,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
}
|
}
|
||||||
|
|
||||||
valHH = float (lochhmasexpCurve[500.f * h]);
|
valHH = float (lochhmasexpCurve[500.f * h]);
|
||||||
valHH = 1.f - valHH;
|
valHH = LIM01(1.f - valHH);
|
||||||
kmaskHa = valHH;
|
kmaskHa = valHH;
|
||||||
kmaskHb = valHH;
|
kmaskHb = valHH;
|
||||||
kmaskHL = 32768.f * valHH;
|
kmaskHL = 32768.f * valHH;
|
||||||
@@ -7378,7 +7378,9 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
int loy = cy + y;
|
int loy = cy + y;
|
||||||
|
|
||||||
if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) {
|
if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) {
|
||||||
bufmaskblurexp->L[loy - begy][lox - begx] = ble[loy - begy][lox - begx] * 32768.f;
|
bufmaskblurexp->L[loy - begy][lox - begx] = LIM01(ble[loy - begy][lox - begx]) * 32768.f;
|
||||||
|
bufmaskblurexp->a[loy - begy][lox - begx] *= LIM01(ble[loy - begy][lox - begx]);
|
||||||
|
bufmaskblurexp->b[loy - begy][lox - begx] *= LIM01(ble[loy - begy][lox - begx]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7392,8 +7394,8 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
gaussianBlur(bufmaskblurexp->L, bufmaskorigexp->L, bfw, bfh, radiusb);
|
gaussianBlur(bufmaskblurexp->L, bufmaskorigexp->L, bfw, bfh, radiusb);
|
||||||
gaussianBlur(bufmaskblurexp->a, bufmaskorigexp->a, bfw, bfh, 1.f + (0.2f * lp.radmaexp) / sk);
|
gaussianBlur(bufmaskblurexp->a, bufmaskorigexp->a, bfw, bfh, radiusb); //1.f + (0.2f * lp.radmaexp) / sk);
|
||||||
gaussianBlur(bufmaskblurexp->b, bufmaskorigexp->b, bfw, bfh, 1.f + (0.2f * lp.radmaexp) / sk);
|
gaussianBlur(bufmaskblurexp->b, bufmaskorigexp->b, bfw, bfh, radiusb);//1.f + (0.2f * lp.radmaexp) / sk);
|
||||||
}
|
}
|
||||||
|
|
||||||
delete bufmaskblurexp;
|
delete bufmaskblurexp;
|
||||||
@@ -7916,7 +7918,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
if (locllmasCurve && llmasutili) {
|
if (locllmasCurve && llmasutili) {
|
||||||
float ligh = (bufcolorig->L[loy - begy][lox - begx]) / 32768.f;
|
float ligh = (bufcolorig->L[loy - begy][lox - begx]) / 32768.f;
|
||||||
valLL = (float)(locllmasCurve[500.f * ligh]);
|
valLL = (float)(locllmasCurve[500.f * ligh]);
|
||||||
valLL = 1.f - valLL;
|
valLL = LIM01(1.f - valLL);
|
||||||
kmaskL = 32768.f * valLL;
|
kmaskL = 32768.f * valLL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7924,7 +7926,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
float chromask = 0.0001f + (sqrt(SQR(bufcolorig->a[loy - begy][lox - begx]) + SQR(bufcolorig->b[loy - begy][lox - begx])));
|
float chromask = 0.0001f + (sqrt(SQR(bufcolorig->a[loy - begy][lox - begx]) + SQR(bufcolorig->b[loy - begy][lox - begx])));
|
||||||
float chromaskr = chromask / 45000.f;
|
float chromaskr = chromask / 45000.f;
|
||||||
valCC = float (locccmasCurve[500.f * chromaskr]);
|
valCC = float (locccmasCurve[500.f * chromaskr]);
|
||||||
valCC = 1.f - valCC;
|
valCC = LIM01(1.f - valCC);
|
||||||
kmaskCa = valCC;
|
kmaskCa = valCC;
|
||||||
kmaskCb = valCC;
|
kmaskCb = valCC;
|
||||||
}
|
}
|
||||||
@@ -7939,7 +7941,7 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
}
|
}
|
||||||
|
|
||||||
valHH = float (lochhmasCurve[500.f * h]);
|
valHH = float (lochhmasCurve[500.f * h]);
|
||||||
valHH = 1.f - valHH;
|
valHH = LIM01(1.f - valHH);
|
||||||
kmaskHa = valHH;
|
kmaskHa = valHH;
|
||||||
kmaskHb = valHH;
|
kmaskHb = valHH;
|
||||||
kmaskHL = 32768.f * valHH;
|
kmaskHL = 32768.f * valHH;
|
||||||
@@ -7968,7 +7970,9 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
int loy = cy + y;
|
int loy = cy + y;
|
||||||
|
|
||||||
if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) {
|
if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) {
|
||||||
bufmaskblurcol->L[loy - begy][lox - begx] = ble[loy - begy][lox - begx] * 32768.f;
|
bufmaskblurcol->L[loy - begy][lox - begx] = LIM01(ble[loy - begy][lox - begx]) * 32768.f;
|
||||||
|
bufmaskblurcol->a[loy - begy][lox - begx] *= LIM01(ble[loy - begy][lox - begx]);
|
||||||
|
bufmaskblurcol->b[loy - begy][lox - begx] *= LIM01(ble[loy - begy][lox - begx]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7981,8 +7985,8 @@ void ImProcFunctions::Lab_Local(int call, int sp, float** shbuffer, LabImage * o
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
gaussianBlur(bufmaskblurcol->L, bufmaskorigcol->L, bfw, bfh, radiusb);
|
gaussianBlur(bufmaskblurcol->L, bufmaskorigcol->L, bfw, bfh, radiusb);
|
||||||
gaussianBlur(bufmaskblurcol->a, bufmaskorigcol->a, bfw, bfh, 1.f + (0.2f * lp.radmacol) / sk);
|
gaussianBlur(bufmaskblurcol->a, bufmaskorigcol->a, bfw, bfh, radiusb); //1.f + (0.2f * lp.radmacol) / sk);
|
||||||
gaussianBlur(bufmaskblurcol->b, bufmaskorigcol->b, bfw, bfh, 1.f + (0.2f * lp.radmacol) / sk);
|
gaussianBlur(bufmaskblurcol->b, bufmaskorigcol->b, bfw, bfh, radiusb); //1.f + (0.2f * lp.radmacol) / sk);
|
||||||
}
|
}
|
||||||
delete bufmaskblurcol;
|
delete bufmaskblurcol;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user