add +-*/ operators to oclMat

This commit is contained in:
yao 2013-02-08 11:41:46 +08:00
parent db9de43fa5
commit 0b365f6aa5
3 changed files with 65 additions and 0 deletions

View File

@ -219,6 +219,11 @@ namespace cv
oclMat operator()( Range rowRange, Range colRange ) const; oclMat operator()( Range rowRange, Range colRange ) const;
oclMat operator()( const Rect &roi ) const; oclMat operator()( const Rect &roi ) const;
oclMat& operator+=( const oclMat& m );
oclMat& operator-=( const oclMat& m );
oclMat& operator*=( const oclMat& m );
oclMat& operator/=( const oclMat& m );
//! returns true if the oclMatrix data is continuous //! returns true if the oclMatrix data is continuous
// (i.e. when there are no gaps between successive rows). // (i.e. when there are no gaps between successive rows).
// similar to CV_IS_oclMat_CONT(cvoclMat->type) // similar to CV_IS_oclMat_CONT(cvoclMat->type)
@ -468,6 +473,12 @@ namespace cv
CV_EXPORTS oclMat operator ^ (const oclMat &src1, const oclMat &src2); CV_EXPORTS oclMat operator ^ (const oclMat &src1, const oclMat &src2);
CV_EXPORTS void cvtColor(const oclMat &src, oclMat &dst, int code , int dcn = 0); CV_EXPORTS void cvtColor(const oclMat &src, oclMat &dst, int code , int dcn = 0);
//! Mathematics operators
CV_EXPORTS oclMat operator + (const oclMat &src1, const oclMat &src2);
CV_EXPORTS oclMat operator - (const oclMat &src1, const oclMat &src2);
CV_EXPORTS oclMat operator * (const oclMat &src1, const oclMat &src2);
CV_EXPORTS oclMat operator / (const oclMat &src1, const oclMat &src2);
//////////////////////////////// Filter Engine //////////////////////////////// //////////////////////////////// Filter Engine ////////////////////////////////
/*! /*!

View File

@ -12,6 +12,7 @@
// //
// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved.
// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved.
// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved.
// Third party copyrights are property of their respective owners. // Third party copyrights are property of their respective owners.
// //
// @Authors // @Authors
@ -2152,6 +2153,34 @@ cv::ocl::oclMat cv::ocl::operator ^ (const oclMat &src1, const oclMat &src2)
return dst; return dst;
} }
cv::ocl::oclMat cv::ocl::operator + (const oclMat &src1, const oclMat &src2)
{
oclMat dst;
add(src1, src2, dst);
return dst;
}
cv::ocl::oclMat cv::ocl::operator - (const oclMat &src1, const oclMat &src2)
{
oclMat dst;
subtract(src1, src2, dst);
return dst;
}
cv::ocl::oclMat cv::ocl::operator * (const oclMat &src1, const oclMat &src2)
{
oclMat dst;
multiply(src1, src2, dst);
return dst;
}
cv::ocl::oclMat cv::ocl::operator / (const oclMat &src1, const oclMat &src2)
{
oclMat dst;
divide(src1, src2, dst);
return dst;
}
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
/////////////////////////////// transpose //////////////////////////////////// /////////////////////////////// transpose ////////////////////////////////////
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

View File

@ -12,10 +12,12 @@
// //
// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. // Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved.
// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. // Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved.
// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved.
// Third party copyrights are property of their respective owners. // Third party copyrights are property of their respective owners.
// //
// @Authors // @Authors
// Niko Li, newlife20080214@gmail.com // Niko Li, newlife20080214@gmail.com
// Yao Wang, bitwangyaoyao@gmail.com
// //
// Redistribution and use in source and binary forms, with or without modification, // Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met: // are permitted provided that the following conditions are met:
@ -1020,4 +1022,27 @@ void cv::ocl::oclMat::release()
refcount = 0; refcount = 0;
} }
oclMat& cv::ocl::oclMat::operator+=( const oclMat& m )
{
add(*this, m, *this);
return *this;
}
oclMat& cv::ocl::oclMat::operator-=( const oclMat& m )
{
subtract(*this, m, *this);
return *this;
}
oclMat& cv::ocl::oclMat::operator*=( const oclMat& m )
{
multiply(*this, m, *this);
return *this;
}
oclMat& cv::ocl::oclMat::operator/=( const oclMat& m )
{
divide(*this, m, *this);
return *this;
}
#endif /* !defined (HAVE_OPENCL) */ #endif /* !defined (HAVE_OPENCL) */