为啥我会收到此 OpenCV 错误断言失败?
Posted
技术标签:
【中文标题】为啥我会收到此 OpenCV 错误断言失败?【英文标题】: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。
【参考方案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
以使其正常工作。
【讨论】:
这是我最初的方法,不幸的是它给出了同样的错误。以上是关于为啥我会收到此 OpenCV 错误断言失败?的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV 错误:断言失败,mat.cpp 第 537 行
为啥我会收到此错误:模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):语法错误 Unexpected token, expected "
OPENCV / C++: approxpolydp 断言失败错误