Vec(const Vec<_Tp, cn>& v);
static Vec all(_Tp alpha);
+ static Vec ones();
+ static Vec randn(_Tp a, _Tp b);
+ static Vec randu(_Tp a, _Tp b);
+ static Vec zeros();
+#ifdef CV_CXX11
+ static Vec diag(_Tp alpha) = delete;
+ static Vec eye() = delete;
+#endif
//! per-element multiplication
Vec mul(const Vec<_Tp, cn>& v) const;
}
template<typename _Tp, int cn> inline
+Vec<_Tp, cn> Vec<_Tp, cn>::ones()
+{
+ return Vec::all(1);
+}
+
+template<typename _Tp, int cn> inline
+Vec<_Tp, cn> Vec<_Tp, cn>::zeros()
+{
+ return Vec::all(0);
+}
+
+template<typename _Tp, int cn> inline
Vec<_Tp, cn> Vec<_Tp, cn>::mul(const Vec<_Tp, cn>& v) const
{
Vec<_Tp, cn> w;
return M;
}
+template<typename _Tp, int cn> inline
+Vec<_Tp, cn> Vec<_Tp, cn>::randu(_Tp a, _Tp b)
+{
+ Vec<_Tp,cn> V;
+ cv::randu(V, Scalar(a), Scalar(b));
+ return V;
+}
+
+template<typename _Tp, int cn> inline
+Vec<_Tp, cn> Vec<_Tp, cn>::randn(_Tp a, _Tp b)
+{
+ Vec<_Tp,cn> V;
+ cv::randn(V, Scalar(a), Scalar(b));
+ return V;
+}
+
template<typename _Tp, int m, int n> inline
Matx<_Tp, n, m> Matx<_Tp, m, n>::inv(int method, bool *p_is_ok /*= NULL*/) const
{
EXPECT_EQ(int(6), *(ci));
}
+TEST(Mat, VecMatx_4650)
+{
+ // Makes sure the following compiles.
+ cv::Vec3b a;
+ a = cv::Vec3b::ones();
+ a = cv::Vec3b::zeros();
+ a = cv::Vec3b::randn(0, 10);
+ a = cv::Vec3b::randu(0, 10);
+}
+
}} // namespace