Fixed color pixels using HSV equalizer, S/H speedup and fix
see issue 1436
This commit is contained in:
@@ -359,9 +359,11 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, LUTf & hltone
|
||||
|
||||
}
|
||||
if (vCurveEnabled) {
|
||||
if (v<0) v=0; // important
|
||||
|
||||
//shift value
|
||||
float valparam = vCurve->getVal((double)h)-0.5;
|
||||
valparam *= (1-SQR(SQR(1-s)));
|
||||
valparam *= (1-SQR(SQR(1-min(s,1.0f))));
|
||||
if (valparam > 0.00001) {
|
||||
v = (1-valparam)*v+valparam*(1-SQR(1-min(v,1.0f)));
|
||||
if (v<0) v=0;
|
||||
@@ -374,13 +376,9 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, LUTf & hltone
|
||||
hsv2rgb(h,s,v,r,g,b);
|
||||
}
|
||||
|
||||
//r=FCLIP(r);
|
||||
//g=FCLIP(g);
|
||||
//b=FCLIP(b);
|
||||
|
||||
float x = (toxyz[0][0] * r + toxyz[0][1] * g + toxyz[0][2] * b) ;
|
||||
float y = (toxyz[1][0] * r + toxyz[1][1] * g + toxyz[1][2] * b) ;
|
||||
float z = (toxyz[2][0] * r + toxyz[2][1] * g + toxyz[2][2] * b) ;
|
||||
float x = toxyz[0][0] * r + toxyz[0][1] * g + toxyz[0][2] * b;
|
||||
float y = toxyz[1][0] * r + toxyz[1][1] * g + toxyz[1][2] * b;
|
||||
float z = toxyz[2][0] * r + toxyz[2][1] * g + toxyz[2][2] * b;
|
||||
|
||||
float fx,fy,fz;
|
||||
|
||||
|
@@ -46,9 +46,10 @@ SHMap::~SHMap () {
|
||||
void SHMap::update (Imagefloat* img, double radius, double lumi[3], bool hq, int skip) {
|
||||
|
||||
// fill with luminance
|
||||
#pragma omp parallel for
|
||||
for (int i=0; i<H; i++)
|
||||
for (int j=0; j<W; j++) {
|
||||
map[i][j] = fabs(lumi[0]*img->r[i][j]) + fabs(lumi[1]*img->g[i][j]) + fabs(lumi[2]*img->b[i][j]);
|
||||
map[i][j] = lumi[0]*std::max(img->r[i][j],0.f) + lumi[1]*std::max(img->g[i][j],0.f) + lumi[2]*std::max(img->b[i][j],0.f);
|
||||
}
|
||||
#ifdef _OPENMP
|
||||
#pragma omp parallel
|
||||
|
Reference in New Issue
Block a user