diff --git a/modules/imgproc/perf/opencl/perf_color.cpp b/modules/imgproc/perf/opencl/perf_color.cpp index 1c6947082..21742fece 100644 --- a/modules/imgproc/perf/opencl/perf_color.cpp +++ b/modules/imgproc/perf/opencl/perf_color.cpp @@ -58,7 +58,8 @@ using std::tr1::make_tuple; CV_ENUM(ConversionTypes, COLOR_RGB2GRAY, COLOR_RGB2BGR, COLOR_RGB2YUV, COLOR_YUV2RGB, COLOR_RGB2YCrCb, COLOR_YCrCb2RGB, COLOR_RGB2XYZ, COLOR_XYZ2RGB, COLOR_RGB2HSV, COLOR_HSV2RGB, COLOR_RGB2HLS, - COLOR_HLS2RGB, COLOR_BGR5652BGR, COLOR_BGR2BGR565, COLOR_RGBA2mRGBA, COLOR_mRGBA2RGBA, COLOR_YUV2RGB_NV12) + COLOR_HLS2RGB, COLOR_BGR5652BGR, COLOR_BGR2BGR565, COLOR_RGBA2mRGBA, COLOR_mRGBA2RGBA, COLOR_YUV2RGB_NV12, + COLOR_RGB2Lab, COLOR_Lab2BGR) typedef tuple > CvtColorParams; typedef TestBaseWithParam CvtColorFixture; @@ -82,7 +83,9 @@ OCL_PERF_TEST_P(CvtColorFixture, CvtColor, testing::Combine( make_tuple(ConversionTypes(COLOR_BGR2BGR565), 3, 2), make_tuple(ConversionTypes(COLOR_RGBA2mRGBA), 4, 4), make_tuple(ConversionTypes(COLOR_mRGBA2RGBA), 4, 4), - make_tuple(ConversionTypes(COLOR_YUV2RGB_NV12), 1, 3) + make_tuple(ConversionTypes(COLOR_YUV2RGB_NV12), 1, 3), + make_tuple(ConversionTypes(COLOR_RGB2Lab), 3, 3), + make_tuple(ConversionTypes(COLOR_Lab2BGR), 3, 4) ))) { CvtColorParams params = GetParam(); diff --git a/modules/imgproc/src/color.cpp b/modules/imgproc/src/color.cpp index 8c4bae62b..5dfcbc956 100644 --- a/modules/imgproc/src/color.cpp +++ b/modules/imgproc/src/color.cpp @@ -3158,7 +3158,7 @@ static bool ocl_cvtColor( InputArray _src, OutputArray _dst, int code, int dcn ) coeffs[i+bidx*3] = _coeffs[i+6]*_whitept[i]; } - Mat(1, 9, CV_32SC1, coeffs).copyTo(ucoeffs); + Mat(1, 9, CV_32FC1, coeffs).copyTo(ucoeffs); } _dst.create(sz, CV_MAKETYPE(depth, dcn));