From 1a624efc0f97245b37667c06cfc470aaaf900f7d Mon Sep 17 00:00:00 2001 From: Vincent Rabaud Date: Fri, 16 May 2025 10:48:53 +0200 Subject: [PATCH] Add missing Mat_<_Tp>::zeros(int _ndims, const int* _sizes) --- modules/core/include/opencv2/core/mat.inl.hpp | 6 ++++++ modules/core/test/test_mat.cpp | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/modules/core/include/opencv2/core/mat.inl.hpp b/modules/core/include/opencv2/core/mat.inl.hpp index bd0ba637b5..94353a0678 100644 --- a/modules/core/include/opencv2/core/mat.inl.hpp +++ b/modules/core/include/opencv2/core/mat.inl.hpp @@ -3024,6 +3024,12 @@ Mat_<_Tp>& Mat_<_Tp>::operator = (const MatExpr& e) return *this; } +template inline +MatExpr Mat_<_Tp>::zeros(int _ndims, const int* _sizes) +{ + return Mat::zeros(_ndims, _sizes, traits::Type<_Tp>::value); +} + template inline MatExpr Mat_<_Tp>::zeros(int rows, int cols) { diff --git a/modules/core/test/test_mat.cpp b/modules/core/test/test_mat.cpp index aae15af463..b8adde52b3 100644 --- a/modules/core/test/test_mat.cpp +++ b/modules/core/test/test_mat.cpp @@ -1418,6 +1418,13 @@ TEST(Core_Mat, copyMakeBoderUndefinedBehavior) EXPECT_EQ(0, cv::norm(src.col(2), dst(Rect(5,1,1,4)))); } +TEST(Core_Mat, zeros) +{ + // Should not fail during linkage. + const int dims[] = {2, 2, 4}; + cv::Mat1f mat = cv::Mat1f::zeros(3, dims); +} + TEST(Core_Matx, fromMat_) { Mat_ a = (Mat_(2,2) << 10, 11, 12, 13);