 //        };
 //        int hr = hrange, hscale = hr == 180 ? 15 : 21;
 //        n *= 3;
-//        
+//
 //        for( i = 0; i < n; i += 3, src += scn )
 //        {
 //            int b = src[bidx], g = src[1], r = src[bidx^2];
 //            int h, s, v = b;
 //            int vmin = b, diff;
 //            int vr, vg;
-//            
+//
 //            CV_CALC_MAX_8U( v, g );
 //            CV_CALC_MAX_8U( v, r );
 //            CV_CALC_MIN_8U( vmin, g );
 //            CV_CALC_MIN_8U( vmin, r );
-//            
+//
 //            diff = v - vmin;
 //            vr = v == r ? -1 : 0;
 //            vg = v == g ? -1 : 0;
-//            
+//
 //            s = diff * div_table[v] >> hsv_shift;
 //            h = (vr & (g - b)) +
 //                (~vr & ((vg & (b - r + 2 * diff)) + ((~vg) & (r - g + 4 * diff))));
 //            h = (h * div_table[diff] * hscale + (1 << (hsv_shift + 6))) >> (7 + hsv_shift);
 //            h += h < 0 ? hr : 0;
-//            
+//
 //            dst[i] = (uchar)h;
 //            dst[i+1] = (uchar)s;
 //            dst[i+2] = (uchar)v;
 //        }
 //    }
-//                 
+//
 //    int srccn, blueIdx, hrange;
-//};    
-//
-//                 
+//};
+//
+//
 //struct RGB2HSV_f
 //{
 //    typedef float channel_type;
-//    
+//
 //    RGB2HSV_f(int _srccn, int _blueIdx, float _hrange)
 //    : srccn(_srccn), blueIdx(_blueIdx), hrange(_hrange) {}
-//    
+//
 //    void operator()(const float* src, float* dst, int n) const
 //    {
 //        int i, bidx = blueIdx, scn = srccn;
 //        float hscale = hrange*(1.f/360.f);
 //        n *= 3;
-//    
+//
 //        for( i = 0; i < n; i += 3, src += scn )
 //        {
 //            float b = src[bidx], g = src[1], r = src[bidx^2];
 //            float h, s, v;
-//            
+//
 //            float vmin, diff;
-//            
+//
 //            v = vmin = r;
 //            if( v < g ) v = g;
 //            if( v < b ) v = b;
 //            if( vmin > g ) vmin = g;
 //            if( vmin > b ) vmin = b;
-//            
+//
 //            diff = v - vmin;
 //            s = diff/(float)(fabs(v) + FLT_EPSILON);
 //            diff = (float)(60./(diff + FLT_EPSILON));

//                G = splineInterpolate(G*gscale, gammaTab, GAMMA_TAB_SIZE);
//                B = splineInterpolate(B*gscale, gammaTab, GAMMA_TAB_SIZE);
//            }
//            float fX = splineInterpolate(R*C0 + G*C1 + B*C2, LabCbrtTab, LAB_CBRT_TAB_SIZE); 
//            float fY = splineInterpolate(R*C3 + G*C4 + B*C5, LabCbrtTab, LAB_CBRT_TAB_SIZE);
//            float fZ = splineInterpolate(R*C6 + G*C7 + B*C8, LabCbrtTab, LAB_CBRT_TAB_SIZE);
//            
//            float L = 116.f*fY - 16.f;
//            float a = 500.f*(fX - fY);
//            float b = 200.f*(fY - fZ);
//            
//            dst[i] = L; dst[i+1] = a; dst[i+2] = b;
//        }
//    }
//    
//    int srccn;
//    float coeffs[9];
//    bool srgb;
//};
//
//    
//struct Lab2RGB_f
//{
//    typedef float channel_type;
//    
//    Lab2RGB_f( int _dstcn, int blueIdx, const float* _coeffs,
//               const float* _whitept, bool _srgb )
//    : dstcn(_dstcn), srgb(_srgb)
//    {
//        initLabTabs();
//        
//        if(!_coeffs) _coeffs = XYZ2sRGB_D65;
//        if(!_whitept) _whitept = D65;
//        
//        for( int i = 0; i < 3; i++ )
//        {
//            coeffs[i+(blueIdx^2)*3] = _coeffs[i]*_whitept[i];

//                _Tp Y = src[i];
//                _Tp Cr = src[i+1];
//                _Tp Cb = src[i+2];
//
//                _Tp b = saturate_cast<_Tp>(Y + (Cb - delta)*C3);
//                _Tp g = saturate_cast<_Tp>(Y + (Cb - delta)*C2 + (Cr - delta)*C1);
//                _Tp r = saturate_cast<_Tp>(Y + (Cr - delta)*C0);
//
//                dst[bidx] = b; dst[1] = g; dst[bidx^2] = r;
//                if( dcn == 4 )
//                    dst[3] = alpha;
