4

我有这个代码:

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 错误:断言失败 (type == type0 || (CV_MAT_CN(type) == CV_MAT_CN(type0) && ((1 << type0) & fixedDepthMask) != 0)) 在创建,文件 /Users/robin/Projects/ OpenCVForiPhone/opencv/opencv/modules/core/src/matrix.cpp,第 1249 行终止称为抛出异常

我认为由于 cvtColor 调用,我的 Mat 已经处于 1 通道灰度...

我怎样才能解决这个问题?

4

1 回答 1

10

代替:

std::vector<std::vector<Point> > contours;

你有没有尝试过?

std::vector<std::vector<cv::Point> > contours;
于 2012-11-09T18:25:51.170 回答