|
|
|
@ -3381,18 +3381,16 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn ) |
|
|
|
|
_dst.create(sz, CV_8UC2); |
|
|
|
|
dst = _dst.getMat(); |
|
|
|
|
|
|
|
|
|
#ifdef HAVE_IPP |
|
|
|
|
#if defined(HAVE_IPP) && 0 // breaks OCL accuracy tests
|
|
|
|
|
CV_SUPPRESS_DEPRECATED_START |
|
|
|
|
#if 0 |
|
|
|
|
|
|
|
|
|
if (code == CV_BGR2BGR565 && scn == 3) |
|
|
|
|
{ |
|
|
|
|
if (CvtColorIPPLoop(src, dst, IPPGeneralFunctor((ippiGeneralFunc)ippiBGRToBGR565_8u16u_C3R))) |
|
|
|
|
return; |
|
|
|
|
setIppErrorStatus(); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
#endif |
|
|
|
|
if (code == CV_BGRA2BGR565 && scn == 4) |
|
|
|
|
else if (code == CV_BGRA2BGR565 && scn == 4) |
|
|
|
|
{ |
|
|
|
|
if (CvtColorIPPLoopCopy(src, dst, |
|
|
|
|
IPPReorderGeneralFunctor(ippiSwapChannelsC4C3RTab[depth], |
|
|
|
@ -3787,6 +3785,7 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn ) |
|
|
|
|
#if defined (HAVE_IPP) && (IPP_VERSION_MAJOR >= 7) |
|
|
|
|
if( depth == CV_8U || depth == CV_16U ) |
|
|
|
|
{ |
|
|
|
|
#if 0 // breaks OCL accuracy tests
|
|
|
|
|
if( code == CV_BGR2HSV_FULL && scn == 3 ) |
|
|
|
|
{ |
|
|
|
|
if( CvtColorIPPLoopCopy(src, dst, IPPReorderGeneralFunctor(ippiSwapChannelsC3RTab[depth], ippiRGB2HSVTab[depth], 2, 1, 0, depth)) ) |
|
|
|
@ -3799,15 +3798,16 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn ) |
|
|
|
|
return; |
|
|
|
|
setIppErrorStatus(); |
|
|
|
|
} |
|
|
|
|
else if( code == CV_RGB2HSV_FULL && scn == 3 && depth == CV_16U ) |
|
|
|
|
else if( code == CV_RGB2HSV_FULL && scn == 4 ) |
|
|
|
|
{ |
|
|
|
|
if( CvtColorIPPLoopCopy(src, dst, IPPGeneralFunctor(ippiRGB2HSVTab[depth])) ) |
|
|
|
|
if( CvtColorIPPLoop(src, dst, IPPReorderGeneralFunctor(ippiSwapChannelsC4C3RTab[depth], ippiRGB2HSVTab[depth], 0, 1, 2, depth)) ) |
|
|
|
|
return; |
|
|
|
|
setIppErrorStatus(); |
|
|
|
|
} |
|
|
|
|
else if( code == CV_RGB2HSV_FULL && scn == 4 ) |
|
|
|
|
} else |
|
|
|
|
#endif |
|
|
|
|
if( code == CV_RGB2HSV_FULL && scn == 3 && depth == CV_16U ) |
|
|
|
|
{ |
|
|
|
|
if( CvtColorIPPLoop(src, dst, IPPReorderGeneralFunctor(ippiSwapChannelsC4C3RTab[depth], ippiRGB2HSVTab[depth], 0, 1, 2, depth)) ) |
|
|
|
|
if( CvtColorIPPLoopCopy(src, dst, IPPGeneralFunctor(ippiRGB2HSVTab[depth])) ) |
|
|
|
|
return; |
|
|
|
|
setIppErrorStatus(); |
|
|
|
|
} |
|
|
|
|