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

标签 c++ opencv compiler-errors overloading

我正在尝试创建一个与另一个尺寸和类型相同的 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/

相关文章:

opencv - C++ opencv图像编辑

python - 无论我将MPI Parallel设置为false还是true,我都继续收到MPI错误

c++ - 如何遍历 C++ 中的 unicode 字符?

image-processing - 在OpenCV中围绕图像中心旋转,缩放和平移

c++ - CMake AutoMOC 生成有错误的 .cpp

java - 用于形状检测问题的 OpenCV C++ 转换为 Java

delphi - 来自编译器的虚假 "Undeclared Identifier"错误?

c - flex - 没有入口点

c++ - 为什么要使用 glTranslatef?为什么不直接更改渲染坐标?

c++ - 使用 boost::thread 将 c++ 对象从一个线程传递到另一个线程的正确方法是什么?