我正在尝试创建一个与另一个尺寸和类型相同的 Mat
。新的 Mat
的所有元素都应该为零,所以我尝试了 Mat::zeros(size, type)
函数,定义为:
static MatExpr zeros(Size size, int type);
这是我的代码。假设我已经有一个 Mat g
(通过 imread
创建):
Mat h = Mat::zeros(g.size, g.type());
这会给我一个编译器错误,并提示:
没有用于调用“zeros”的匹配函数
我做错了什么?
最佳答案
您偶然发现了 cv::Mat
的一个怪癖。 size
字段不返回 cv::Size
,而是返回 Mat::MSize
结构。此 MSize
可以通过调用其 operator()
转换为 cv::Size
。
你需要这样调用:
Mat h = Mat::zeros(g.size(), g.type());
关于c++ - 无法使用大小和类型参数调用 OpenCV 的 Mat::zeros,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18470166/