ported cv::Canny to T-API
This commit is contained in:
@@ -127,6 +127,7 @@ public:
|
||||
virtual int depth(int i=-1) const;
|
||||
virtual int channels(int i=-1) const;
|
||||
virtual bool isContinuous(int i=-1) const;
|
||||
virtual bool isSubmatrix(int i=-1) const;
|
||||
virtual bool empty() const;
|
||||
virtual void copyTo(const _OutputArray& arr) const;
|
||||
virtual size_t offset(int i=-1) const;
|
||||
|
@@ -186,6 +186,12 @@ inline _OutputArray::_OutputArray(const Mat& m)
|
||||
inline _OutputArray::_OutputArray(const std::vector<Mat>& vec)
|
||||
{ init(FIXED_SIZE + STD_VECTOR_MAT + ACCESS_WRITE, &vec); }
|
||||
|
||||
inline _OutputArray::_OutputArray(const UMat& m)
|
||||
{ init(FIXED_TYPE + FIXED_SIZE + UMAT + ACCESS_WRITE, &m); }
|
||||
|
||||
inline _OutputArray::_OutputArray(const std::vector<UMat>& vec)
|
||||
{ init(FIXED_SIZE + STD_VECTOR_UMAT + ACCESS_WRITE, &vec); }
|
||||
|
||||
inline _OutputArray::_OutputArray(const cuda::GpuMat& d_mat)
|
||||
{ init(FIXED_TYPE + FIXED_SIZE + GPU_MAT + ACCESS_WRITE, &d_mat); }
|
||||
|
||||
|
@@ -423,6 +423,12 @@ int print(const Mat& mtx, FILE* stream = stdout)
|
||||
return print(Formatter::get()->format(mtx), stream);
|
||||
}
|
||||
|
||||
static inline
|
||||
int print(const UMat& mtx, FILE* stream = stdout)
|
||||
{
|
||||
return print(Formatter::get()->format(mtx.getMat(ACCESS_READ)), stream);
|
||||
}
|
||||
|
||||
template<typename _Tp> static inline
|
||||
int print(const std::vector<Point_<_Tp> >& vec, FILE* stream = stdout)
|
||||
{
|
||||
|
@@ -1808,6 +1808,37 @@ bool _InputArray::isContinuous(int i) const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool _InputArray::isSubmatrix(int i) const
|
||||
{
|
||||
int k = kind();
|
||||
|
||||
if( k == MAT )
|
||||
return i < 0 ? ((const Mat*)obj)->isSubmatrix() : false;
|
||||
|
||||
if( k == UMAT )
|
||||
return i < 0 ? ((const UMat*)obj)->isSubmatrix() : false;
|
||||
|
||||
if( k == EXPR || k == MATX || k == STD_VECTOR || k == NONE || k == STD_VECTOR_VECTOR)
|
||||
return false;
|
||||
|
||||
if( k == STD_VECTOR_MAT )
|
||||
{
|
||||
const std::vector<Mat>& vv = *(const std::vector<Mat>*)obj;
|
||||
CV_Assert((size_t)i < vv.size());
|
||||
return vv[i].isSubmatrix();
|
||||
}
|
||||
|
||||
if( k == STD_VECTOR_UMAT )
|
||||
{
|
||||
const std::vector<UMat>& vv = *(const std::vector<UMat>*)obj;
|
||||
CV_Assert((size_t)i < vv.size());
|
||||
return vv[i].isSubmatrix();
|
||||
}
|
||||
|
||||
CV_Error(CV_StsNotImplemented, "");
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t _InputArray::offset(int i) const
|
||||
{
|
||||
int k = kind();
|
||||
|
@@ -729,11 +729,12 @@ void UMat::convertTo(OutputArray _dst, int _type, double alpha, double beta) con
|
||||
doubleSupport ? " -D DOUBLE_SUPPORT" : ""));
|
||||
if (!k.empty())
|
||||
{
|
||||
UMat src = *this;
|
||||
_dst.create( size(), _type );
|
||||
UMat dst = _dst.getUMat();
|
||||
|
||||
float alphaf = (float)alpha, betaf = (float)beta;
|
||||
k.args(ocl::KernelArg::ReadOnlyNoSize(*this), ocl::KernelArg::WriteOnly(dst, cn), alphaf, betaf);
|
||||
k.args(ocl::KernelArg::ReadOnlyNoSize(src), ocl::KernelArg::WriteOnly(dst, cn), alphaf, betaf);
|
||||
|
||||
size_t globalsize[2] = { dst.cols * cn, dst.rows };
|
||||
if (k.run(2, globalsize, NULL, false))
|
||||
|
Reference in New Issue
Block a user