mirror of
https://github.com/opencv/opencv.git
synced 2024-11-28 21:20:18 +08:00
added gridTransform/gridCopy overloads for GlobPtrSz
This commit is contained in:
parent
aaf47578e8
commit
c23eb17997
@ -50,6 +50,7 @@
|
||||
#include "../util/tuple.hpp"
|
||||
#include "../ptr2d/traits.hpp"
|
||||
#include "../ptr2d/gpumat.hpp"
|
||||
#include "../ptr2d/glob.hpp"
|
||||
#include "../ptr2d/mask.hpp"
|
||||
#include "../ptr2d/zip.hpp"
|
||||
#include "detail/copy.hpp"
|
||||
@ -69,6 +70,18 @@ __host__ void gridCopy_(const SrcPtr& src, GpuMat_<DstType>& dst, const MaskPtr&
|
||||
grid_copy_detail::copy<Policy>(shrinkPtr(src), shrinkPtr(dst), shrinkPtr(mask), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename DstType, class MaskPtr>
|
||||
__host__ void gridCopy_(const SrcPtr& src, const GlobPtrSz<DstType>& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(dst) == rows && getCols(dst) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_copy_detail::copy<Policy>(shrinkPtr(src), shrinkPtr(dst), shrinkPtr(mask), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename DstType>
|
||||
__host__ void gridCopy_(const SrcPtr& src, GpuMat_<DstType>& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -80,6 +93,17 @@ __host__ void gridCopy_(const SrcPtr& src, GpuMat_<DstType>& dst, Stream& stream
|
||||
grid_copy_detail::copy<Policy>(shrinkPtr(src), shrinkPtr(dst), WithOutMask(), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename DstType>
|
||||
__host__ void gridCopy_(const SrcPtr& src, const GlobPtrSz<DstType>& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(dst) == rows && getCols(dst) == cols );
|
||||
|
||||
grid_copy_detail::copy<Policy>(shrinkPtr(src), shrinkPtr(dst), WithOutMask(), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, class MaskPtr>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>& >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -100,6 +124,25 @@ __host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, class MaskPtr>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1> >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<SrcPtrTuple>::value == 2, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_copy_detail::copy_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst))),
|
||||
shrinkPtr(mask),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>& >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -118,6 +161,24 @@ __host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1> >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<SrcPtrTuple>::value == 2, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
|
||||
grid_copy_detail::copy_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst))),
|
||||
WithOutMask(),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, typename D2, class MaskPtr>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>& >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -139,6 +200,26 @@ __host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, typename D2, class MaskPtr>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2> >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<SrcPtrTuple>::value == 3, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(get<2>(dst)) == rows && getCols(get<2>(dst)) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_copy_detail::copy_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst), get<2>(dst))),
|
||||
shrinkPtr(mask),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, typename D2>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>& >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -158,6 +239,25 @@ __host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, typename D2>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2> >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<SrcPtrTuple>::value == 3, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(get<2>(dst)) == rows && getCols(get<2>(dst)) == cols );
|
||||
|
||||
grid_copy_detail::copy_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst), get<2>(dst))),
|
||||
WithOutMask(),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, typename D2, typename D3, class MaskPtr>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>&, GpuMat_<D3>& >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -180,6 +280,27 @@ __host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, typename D2, typename D3, class MaskPtr>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2>, GlobPtrSz<D3> >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<SrcPtrTuple>::value == 4, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(get<2>(dst)) == rows && getCols(get<2>(dst)) == cols );
|
||||
CV_Assert( getRows(get<3>(dst)) == rows && getCols(get<3>(dst)) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_copy_detail::copy_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst), get<2>(dst), get<3>(dst))),
|
||||
shrinkPtr(mask),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, typename D2, typename D3>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>&, GpuMat_<D3>& >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -200,6 +321,26 @@ __host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtrTuple, typename D0, typename D1, typename D2, typename D3>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2>, GlobPtrSz<D3> >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<SrcPtrTuple>::value == 4, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(get<2>(dst)) == rows && getCols(get<2>(dst)) == cols );
|
||||
CV_Assert( getRows(get<3>(dst)) == rows && getCols(get<3>(dst)) == cols );
|
||||
|
||||
grid_copy_detail::copy_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst), get<2>(dst), get<3>(dst))),
|
||||
WithOutMask(),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
// Default Policy
|
||||
|
||||
struct DefaultCopyPolicy
|
||||
@ -216,48 +357,96 @@ __host__ void gridCopy(const SrcPtr& src, GpuMat_<DstType>& dst, const MaskPtr&
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename DstType, class MaskPtr>
|
||||
__host__ void gridCopy(const SrcPtr& src, const GlobPtrSz<DstType>& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename DstType>
|
||||
__host__ void gridCopy(const SrcPtr& src, GpuMat_<DstType>& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename DstType>
|
||||
__host__ void gridCopy(const SrcPtr& src, const GlobPtrSz<DstType>& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, class MaskPtr>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>& >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, class MaskPtr>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1> >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>& >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1> >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, typename D2, class MaskPtr>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>& >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, typename D2, class MaskPtr>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2> >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, typename D2>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>& >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, typename D2>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2> >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, typename D2, typename D3, class MaskPtr>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>&, GpuMat_<D3>& >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, typename D2, typename D3, class MaskPtr>
|
||||
__host__ void gridCopy(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2>, GlobPtrSz<D3> >& dst, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, typename D2, typename D3>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>&, GpuMat_<D3>& >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtrTuple, typename D0, typename D1, typename D2, typename D3>
|
||||
__host__ void gridCopy_(const SrcPtrTuple& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2>, GlobPtrSz<D3> >& dst, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridCopy_<DefaultCopyPolicy>(src, dst, stream);
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
#endif
|
||||
|
@ -50,6 +50,7 @@
|
||||
#include "../util/tuple.hpp"
|
||||
#include "../ptr2d/traits.hpp"
|
||||
#include "../ptr2d/gpumat.hpp"
|
||||
#include "../ptr2d/glob.hpp"
|
||||
#include "../ptr2d/mask.hpp"
|
||||
#include "../ptr2d/zip.hpp"
|
||||
#include "detail/transform.hpp"
|
||||
@ -69,6 +70,18 @@ __host__ void gridTransform_(const SrcPtr& src, GpuMat_<DstType>& dst, const UnO
|
||||
grid_transform_detail::transform<Policy>(shrinkPtr(src), shrinkPtr(dst), op, shrinkPtr(mask), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename DstType, class UnOp, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const GlobPtrSz<DstType>& dst, const UnOp& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(dst) == rows && getCols(dst) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_transform_detail::transform<Policy>(shrinkPtr(src), shrinkPtr(dst), op, shrinkPtr(mask), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename DstType, class UnOp>
|
||||
__host__ void gridTransform_(const SrcPtr& src, GpuMat_<DstType>& dst, const UnOp& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -80,6 +93,17 @@ __host__ void gridTransform_(const SrcPtr& src, GpuMat_<DstType>& dst, const UnO
|
||||
grid_transform_detail::transform<Policy>(shrinkPtr(src), shrinkPtr(dst), op, WithOutMask(), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename DstType, class UnOp>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const GlobPtrSz<DstType>& dst, const UnOp& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(dst) == rows && getCols(dst) == cols );
|
||||
|
||||
grid_transform_detail::transform<Policy>(shrinkPtr(src), shrinkPtr(dst), op, WithOutMask(), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr1, class SrcPtr2, typename DstType, class BinOp, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr1& src1, const SrcPtr2& src2, GpuMat_<DstType>& dst, const BinOp& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -94,6 +118,19 @@ __host__ void gridTransform_(const SrcPtr1& src1, const SrcPtr2& src2, GpuMat_<D
|
||||
grid_transform_detail::transform<Policy>(shrinkPtr(src1), shrinkPtr(src2), shrinkPtr(dst), op, shrinkPtr(mask), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr1, class SrcPtr2, typename DstType, class BinOp, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr1& src1, const SrcPtr2& src2, const GlobPtrSz<DstType>& dst, const BinOp& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
const int rows = getRows(src1);
|
||||
const int cols = getCols(src1);
|
||||
|
||||
CV_Assert( getRows(dst) == rows && getCols(dst) == cols );
|
||||
CV_Assert( getRows(src2) == rows && getCols(src2) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_transform_detail::transform<Policy>(shrinkPtr(src1), shrinkPtr(src2), shrinkPtr(dst), op, shrinkPtr(mask), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr1, class SrcPtr2, typename DstType, class BinOp>
|
||||
__host__ void gridTransform_(const SrcPtr1& src1, const SrcPtr2& src2, GpuMat_<DstType>& dst, const BinOp& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -107,6 +144,18 @@ __host__ void gridTransform_(const SrcPtr1& src1, const SrcPtr2& src2, GpuMat_<D
|
||||
grid_transform_detail::transform<Policy>(shrinkPtr(src1), shrinkPtr(src2), shrinkPtr(dst), op, WithOutMask(), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr1, class SrcPtr2, typename DstType, class BinOp>
|
||||
__host__ void gridTransform_(const SrcPtr1& src1, const SrcPtr2& src2, GlobPtrSz<DstType>& dst, const BinOp& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
const int rows = getRows(src1);
|
||||
const int cols = getCols(src1);
|
||||
|
||||
CV_Assert( getRows(dst) == rows && getCols(dst) == cols );
|
||||
CV_Assert( getRows(src2) == rows && getCols(src2) == cols );
|
||||
|
||||
grid_transform_detail::transform<Policy>(shrinkPtr(src1), shrinkPtr(src2), shrinkPtr(dst), op, WithOutMask(), rows, cols, StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>& >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -128,6 +177,26 @@ __host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1> >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<OpTuple>::value == 2, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_transform_detail::transform_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst))),
|
||||
op,
|
||||
shrinkPtr(mask),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, class OpTuple>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>& >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -147,6 +216,25 @@ __host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, class OpTuple>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1> >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<OpTuple>::value == 2, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
|
||||
grid_transform_detail::transform_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst))),
|
||||
op,
|
||||
WithOutMask(),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, typename D2, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>& >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -169,6 +257,27 @@ __host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, typename D2, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2> >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<OpTuple>::value == 3, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(get<2>(dst)) == rows && getCols(get<2>(dst)) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_transform_detail::transform_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst), get<2>(dst))),
|
||||
op,
|
||||
shrinkPtr(mask),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, typename D2, class OpTuple>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>& >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -189,6 +298,26 @@ __host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, typename D2, class OpTuple>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2> >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<OpTuple>::value == 3, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(get<2>(dst)) == rows && getCols(get<2>(dst)) == cols );
|
||||
|
||||
grid_transform_detail::transform_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst), get<2>(dst))),
|
||||
op,
|
||||
WithOutMask(),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, typename D2, typename D3, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>&, GpuMat_<D3>& >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -212,6 +341,28 @@ __host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, typename D2, typename D3, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2>, GlobPtrSz<D3> >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<OpTuple>::value == 4, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(get<2>(dst)) == rows && getCols(get<2>(dst)) == cols );
|
||||
CV_Assert( getRows(get<3>(dst)) == rows && getCols(get<3>(dst)) == cols );
|
||||
CV_Assert( getRows(mask) == rows && getCols(mask) == cols );
|
||||
|
||||
grid_transform_detail::transform_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst), get<2>(dst), get<3>(dst))),
|
||||
op,
|
||||
shrinkPtr(mask),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, typename D2, typename D3, class OpTuple>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>&, GpuMat_<D3>& >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
@ -233,6 +384,27 @@ __host__ void gridTransform_(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMa
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
template <class Policy, class SrcPtr, typename D0, typename D1, typename D2, typename D3, class OpTuple>
|
||||
__host__ void gridTransform_(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2>, GlobPtrSz<D3> >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
CV_StaticAssert( tuple_size<OpTuple>::value == 4, "" );
|
||||
|
||||
const int rows = getRows(src);
|
||||
const int cols = getCols(src);
|
||||
|
||||
CV_Assert( getRows(get<0>(dst)) == rows && getCols(get<0>(dst)) == cols );
|
||||
CV_Assert( getRows(get<1>(dst)) == rows && getCols(get<1>(dst)) == cols );
|
||||
CV_Assert( getRows(get<2>(dst)) == rows && getCols(get<2>(dst)) == cols );
|
||||
CV_Assert( getRows(get<3>(dst)) == rows && getCols(get<3>(dst)) == cols );
|
||||
|
||||
grid_transform_detail::transform_tuple<Policy>(shrinkPtr(src),
|
||||
shrinkPtr(zipPtr(get<0>(dst), get<1>(dst), get<2>(dst), get<3>(dst))),
|
||||
op,
|
||||
WithOutMask(),
|
||||
rows, cols,
|
||||
StreamAccessor::getStream(stream));
|
||||
}
|
||||
|
||||
// Default Policy
|
||||
|
||||
struct DefaultTransformPolicy
|
||||
@ -250,60 +422,120 @@ __host__ void gridTransform(const SrcPtr& src, GpuMat_<DstType>& dst, const Op&
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename DstType, class Op, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr& src, const GlobPtrSz<DstType>& dst, const Op& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename DstType, class Op>
|
||||
__host__ void gridTransform(const SrcPtr& src, GpuMat_<DstType>& dst, const Op& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename DstType, class Op>
|
||||
__host__ void gridTransform(const SrcPtr& src, const GlobPtrSz<DstType>& dst, const Op& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr1, class SrcPtr2, typename DstType, class Op, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr1& src1, const SrcPtr1& src2, GpuMat_<DstType>& dst, const Op& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src1, src2, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr1, class SrcPtr2, typename DstType, class Op, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr1& src1, const SrcPtr1& src2, const GlobPtrSz<DstType>& dst, const Op& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src1, src2, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr1, class SrcPtr2, typename DstType, class Op>
|
||||
__host__ void gridTransform(const SrcPtr1& src1, const SrcPtr1& src2, GpuMat_<DstType>& dst, const Op& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src1, src2, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr1, class SrcPtr2, typename DstType, class Op>
|
||||
__host__ void gridTransform(const SrcPtr1& src1, const SrcPtr1& src2, const GlobPtrSz<DstType>& dst, const Op& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src1, src2, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>& >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1> >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, class OpTuple>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>& >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, class OpTuple>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1> >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, typename D2, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>& >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, typename D2, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2> >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, typename D2, class OpTuple>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>& >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, typename D2, class OpTuple>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2> >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, typename D2, typename D3, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>&, GpuMat_<D3>& >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, typename D2, typename D3, class OpTuple, class MaskPtr>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2>, GlobPtrSz<D3> >& dst, const OpTuple& op, const MaskPtr& mask, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, mask, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, typename D2, typename D3, class OpTuple>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GpuMat_<D0>&, GpuMat_<D1>&, GpuMat_<D2>&, GpuMat_<D3>& >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, stream);
|
||||
}
|
||||
|
||||
template <class SrcPtr, typename D0, typename D1, typename D2, typename D3, class OpTuple>
|
||||
__host__ void gridTransform(const SrcPtr& src, const tuple< GlobPtrSz<D0>, GlobPtrSz<D1>, GlobPtrSz<D2>, GlobPtrSz<D3> >& dst, const OpTuple& op, Stream& stream = Stream::Null())
|
||||
{
|
||||
gridTransform_<DefaultTransformPolicy>(src, dst, op, stream);
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user