我有这段代码:
mat.copyTo(tmpMat);
cvtColor(tmpMat, tmpMat, CV_BGR2GRAY);
cv::equalizeHist(tmpMat, tmpMat);
cv::Mat browMat = tmpMat(eyebrowRect);
std::vector<std::vector<Point> > contours;
cv::findContours(browMat, contours, cv::RETR_LIST, cv::CHAIN_APPROX_NONE);
但它崩溃了这个错误:
OpenCV错误:断言失败(类型== type0 ||(CV_MAT_CN(type)== CV_MAT_CN(type0)&amp;&amp;((1&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&nbsp;)&amp; fixedDepthMask)!= 0))in create ,file /Users/robin/Projects/OpenCVForiPhone/opencv/opencv/modules/core/src/matrix.cpp,line 1249 终止调用抛出异常
由于cvtColor调用,我认为我的Mat已经处于单通道灰阶......
我该如何解决这个问题?
答案 0 :(得分:10)
而不是:
std::vector<std::vector<Point> > contours;
你尝试过吗?
std::vector<std::vector<cv::Point> > contours;