【问题标题】:Why am i getting this OpenCV error Assertion Failed?为什么我会收到此 OpenCV 错误断言失败?
【发布时间】:2013-04-17 19:23:17
【问题描述】:

代码如下:

Mat _orange = imread("orange.jpg");
Mat_<Vec3f> orange;
_orange.convertTo(orange, orange.type(), 1.0/255.0);

_orange.convertTo(orange, orange.type(), 1.0/255.0); 部分导致错误。

这是错误信息:

OpenCV 错误:未知函数中的断言失败 (!fixedType() || ((Mat*)obj)->type() == mtype)。

PS: 我正在使用 Visual Studio 2012 和 OpenCV 2.4.4

【问题讨论】:

  • _orange.channels() 返回什么?
  • 它为 _orange.channels() 返回 3。

标签: opencv


【解决方案1】:

尝试像这样向您的 imread 添加参数:

cv::imread("orange.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR );

【讨论】:

  • 我做了和你一样的事情,我可以在我的项目中做到这一点。我使用 2.4.5 和 VS2010 的区别。但这不应该是一个问题。所以也许看看你的包含和库。
【解决方案2】:

我的猜测是cv::Mat::convertTo() 方法正在调用cv::Mat::create() 方法为变量orange 中的数据分配内存。您应该尝试将 orange.type() 替换为 CV_32F 以使其正常工作。

【讨论】:

  • 这是我最初的方法,不幸的是它给出了同样的错误。
猜你喜欢
  • 2011-02-28
  • 1970-01-01
  • 2018-06-22
  • 2016-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多