无法使用大小和类型参数调用 OpenCV 的 Mat::zeros



我正在尝试创建一个大小和类型与另一个相同Mat。新Mat的所有元素都应该为零,所以我尝试了Mat::zeros(size, type)函数,定义为:

static MatExpr zeros(Size size, int type);

这是我的代码。假设我已经有一个Mat g(通过imread创建(:

Mat h = Mat::zeros(g.size, g.type());

这会给我一个编译器错误,抱怨:

调用"零"没有匹配函数

我做错了什么?

你偶然发现了cv::Mat的一个怪癖。size字段不返回cv::Size,而是返回Mat::MSize结构。此MSize可以通过调用其operator()转换为cv::Size

你需要像这样打电话:

Mat h = Mat::zeros(g.size(), g.type());

最新更新