当我尝试用{p>初始化data XFlip b a = Y a b -- Use me for instance decalarations
type X a b = XFlip b a -- Use me for everything else
instance Functor XFlip where ...
时
cv::Mat
或
mask = cv::Mat::zeros(20, 1, CV_8U);
我似乎得到了正确初始化的Mat。 但是
mask = cv::Mat(20, 1, CV_8U, 1);
当我仅使用mask = cv::Mat(20, 1, CV_8U, 0);
或std::cout << mask.size() << std::endl;
时抛出此运行时错误
OpenCV错误:Mat,文件/usr/local/include/opencv2/core/mat.inl.hpp,行579中的断言失败(total()== 0 ||数据!= NULL) 抛出'cv :: Exception'实例后终止调用 what():/ usr / local / include / opencv2 / core / mat.inl.hpp:579:错误:(-215)total()== 0 || Mat中的数据!= NULL
这很奇怪...知道为什么会发生这种情况吗?
答案 0 :(得分:0)
OpenCV具有以下两个Mat构造函数:
Mat (int ndims, const int *sizes, int type, const Scalar &s);
Mat (int rows, int cols, int type, void *data, size_t step=AUTO_STEP);
按如下方式构造Mat时
mask = cv::Mat(20, 1, CV_8U, 0);
它使用第二个构造函数。
如果要调用第一个构造函数,则应执行类似的操作
mask = cv::Mat(20, 1, CV_8U, Scalar(0));