У меня этот код:OpenCV findContours аварии
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 Error: Assertion failed (type == type0 || (CV_MAT_CN(type) == CV_MAT_CN(type0) && ((1 << type0) & fixedDepthMask) != 0)) in create, file /Users/robin/Projects/OpenCVForiPhone/opencv/opencv/modules/core/src/matrix.cpp, line 1249 terminate called throwing an exception
Я думаю, что мой Mat уже в 1-канальном серой шкалы из-за cvtColor звоните ...
Как это исправить?
Как вы ожидаете, что cvtColor будет работать на месте для преобразования с 3-канального на 1-канальное изображение? –
Я использую слишком cv :: adaptiveThreshold, который преобразует в 1channel изображение, я думаю ... Если я ошибаюсь, скажите, пожалуйста, как я могу получить 1-канальное изображение с моего мата. – Progeny
@Progeny. Вы должны принять ответ если он решил вашу проблему –