Optimized versions of Erode and Dilate functions added

This commit is contained in:
Kirill Kornyakov 2011-10-24 09:12:55 +00:00
parent a2090a44db
commit 602ad61967

View File

@ -584,8 +584,20 @@ struct MorphNoVec
int operator()(uchar**, int, uchar*, int) const { return 0; } int operator()(uchar**, int, uchar*, int) const { return 0; }
}; };
#ifdef HAVE_TEGRA_OPTIMIZATION
typedef tegra::MorphRowIVec<tegra::VMin8u> ErodeRowVec8u;
typedef tegra::MorphRowIVec<tegra::VMax8u> DilateRowVec8u;
typedef tegra::MorphColumnIVec<tegra::VMin8u> ErodeColumnVec8u;
typedef tegra::MorphColumnIVec<tegra::VMax8u> DilateColumnVec8u;
#else
typedef MorphRowNoVec ErodeRowVec8u; typedef MorphRowNoVec ErodeRowVec8u;
typedef MorphRowNoVec DilateRowVec8u; typedef MorphRowNoVec DilateRowVec8u;
typedef MorphColumnNoVec ErodeColumnVec8u;
typedef MorphColumnNoVec DilateColumnVec8u;
#endif
typedef MorphRowNoVec ErodeRowVec16u; typedef MorphRowNoVec ErodeRowVec16u;
typedef MorphRowNoVec DilateRowVec16u; typedef MorphRowNoVec DilateRowVec16u;
typedef MorphRowNoVec ErodeRowVec16s; typedef MorphRowNoVec ErodeRowVec16s;
@ -593,8 +605,6 @@ typedef MorphRowNoVec DilateRowVec16s;
typedef MorphRowNoVec ErodeRowVec32f; typedef MorphRowNoVec ErodeRowVec32f;
typedef MorphRowNoVec DilateRowVec32f; typedef MorphRowNoVec DilateRowVec32f;
typedef MorphColumnNoVec ErodeColumnVec8u;
typedef MorphColumnNoVec DilateColumnVec8u;
typedef MorphColumnNoVec ErodeColumnVec16u; typedef MorphColumnNoVec ErodeColumnVec16u;
typedef MorphColumnNoVec DilateColumnVec16u; typedef MorphColumnNoVec DilateColumnVec16u;
typedef MorphColumnNoVec ErodeColumnVec16s; typedef MorphColumnNoVec ErodeColumnVec16s;
@ -613,6 +623,7 @@ typedef MorphNoVec DilateVec32f;
#endif #endif
template<class Op, class VecOp> struct MorphRowFilter : public BaseRowFilter template<class Op, class VecOp> struct MorphRowFilter : public BaseRowFilter
{ {
typedef typename Op::rtype T; typedef typename Op::rtype T;