【问题标题】:Unable to call OpenCV's Mat::zeros with size and type parameters无法使用大小和类型参数调用 OpenCV 的 Mat::zeros
【发布时间】:2013-08-27 15:48:51
【问题描述】:

我正在尝试创建一个与另一个具有相同大小和类型的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'

我做错了什么?

【问题讨论】:

  • g.size的类型是什么?

标签: c++ opencv compiler-errors overloading


【解决方案1】:

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

你需要这样调用:

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

【讨论】:

  • 谢谢。我应该注意的任何其他怪癖? ;-)
猜你喜欢
  • 1970-01-01
  • 2015-07-25
  • 2016-09-25
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多