1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-30 15:53:03 +04:00

refactored core using new macro

This commit is contained in:
Ilya Lavrenov
2014-01-24 21:03:31 +04:00
parent cc514ac7a9
commit 7f785e0a11
8 changed files with 155 additions and 84 deletions
+18 -7
View File
@@ -2522,6 +2522,8 @@ void cv::vconcat(InputArray _src, OutputArray dst)
//////////////////////////////////////// set identity ////////////////////////////////////////////
#ifdef HAVE_OPENCL
namespace cv {
static bool ocl_setIdentity( InputOutputArray _m, const Scalar& s )
@@ -2544,12 +2546,14 @@ static bool ocl_setIdentity( InputOutputArray _m, const Scalar& s )
}
#endif
void cv::setIdentity( InputOutputArray _m, const Scalar& s )
{
CV_Assert( _m.dims() <= 2 );
if (ocl::useOpenCL() && _m.isUMat() && ocl_setIdentity(_m, s))
return;
CV_OCL_RUN(_m.isUMat(),
ocl_setIdentity(_m, s))
Mat m = _m.getMat();
int i, j, rows = m.rows, cols = m.cols, type = m.type();
@@ -2728,6 +2732,8 @@ static TransposeInplaceFunc transposeInplaceTab[] =
0, 0, 0, 0, 0, 0, 0, transposeI_32sC6, 0, 0, 0, 0, 0, 0, 0, transposeI_32sC8
};
#ifdef HAVE_OPENCL
static inline int divUp(int a, int b)
{
return (a + b - 1) / b;
@@ -2769,6 +2775,8 @@ static bool ocl_transpose( InputArray _src, OutputArray _dst )
return k.run(2, globalsize, localsize, false);
}
#endif
}
void cv::transpose( InputArray _src, OutputArray _dst )
@@ -2776,8 +2784,8 @@ void cv::transpose( InputArray _src, OutputArray _dst )
int type = _src.type(), esz = CV_ELEM_SIZE(type);
CV_Assert( _src.dims() <= 2 && esz <= 32 );
if (ocl::useOpenCL() && _dst.isUMat() && ocl_transpose(_src, _dst))
return;
CV_OCL_RUN(_dst.isUMat(),
ocl_transpose(_src, _dst))
Mat src = _src.getMat();
if( src.empty() )
@@ -3007,6 +3015,8 @@ typedef void (*ReduceFunc)( const Mat& src, Mat& dst );
#define reduceMinC32f reduceC_<float, float, OpMin<float> >
#define reduceMinC64f reduceC_<double,double,OpMin<double> >
#ifdef HAVE_OPENCL
namespace cv {
static bool ocl_reduce(InputArray _src, OutputArray _dst,
@@ -3060,6 +3070,8 @@ static bool ocl_reduce(InputArray _src, OutputArray _dst,
}
#endif
void cv::reduce(InputArray _src, OutputArray _dst, int dim, int op, int dtype)
{
CV_Assert( _src.dims() <= 2 );
@@ -3074,9 +3086,8 @@ void cv::reduce(InputArray _src, OutputArray _dst, int dim, int op, int dtype)
CV_Assert( op == CV_REDUCE_SUM || op == CV_REDUCE_MAX ||
op == CV_REDUCE_MIN || op == CV_REDUCE_AVG );
if (ocl::useOpenCL() && _dst.isUMat() &&
ocl_reduce(_src, _dst, dim, op, op0, stype, dtype))
return;
CV_OCL_RUN(_dst.isUMat(),
ocl_reduce(_src, _dst, dim, op, op0, stype, dtype))
Mat src = _src.getMat();
_dst.create(dim == 0 ? 1 : src.rows, dim == 0 ? src.cols : 1, dtype);