Image processing findContours错误';仅支持8uC1图像';

Image processing findContours错误';仅支持8uC1图像';,image-processing,opencv,Image Processing,Opencv,正在尝试在二进制图像上运行FindOnTours“ 有什么想法吗? 感谢: C++:void Mat::convertTo(输出数组m,int-rtype,double-alpha=1,double-beta=0)常量 参数: rtype–所需的输出矩阵类型,或者更确切地说,是自 通道与输入相同;如果rtype为负,则输出矩阵的类型与输入相同 您可以看到,convertTo不会改变通道的数量,这意味着您很可能会得到3个通道(r、g和b)。但是findContours需要单色图像 您需要将图像转换

正在尝试在二进制图像上运行FindOnTours“

有什么想法吗? 感谢:

C++:void Mat::convertTo(输出数组m,int-rtype,double-alpha=1,double-beta=0)常量
参数:

rtype–所需的输出矩阵类型,或者更确切地说,是自 通道与输入相同;如果rtype为负,则输出矩阵的类型与输入相同

您可以看到,
convertTo
不会改变通道的数量,这意味着您很可能会得到3个通道(r、g和b)。但是
findContours
需要单色图像

您需要将图像转换为黑白:

cv::Mat bwImage;
cv::cvtColor(image, bwImage, CV_RGB2GRAY);
vector< vector<cv::Point> > contours;
cv::findContours(bwImage, contours, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);
cv::Mat bwImage;
cv::CVT颜色(图像、bwImage、cv_RGB2GRAY);
矢量<矢量>等高线;
cv::findContours(bwImage、等高线、cv_RETR_列表、cv_CHAIN_近似_SIMPLE);

有没有办法把它还原成单色?我已经有了一张黑白图像,用canny从另一张图像中过滤出来program@0xSina:是的,刚刚添加:)
OpenCV Error: Unsupported format or combination of formats ([Start]FindContours support only 8uC1 images) in cvStartFindContours, 
cv::Mat bwImage;
cv::cvtColor(image, bwImage, CV_RGB2GRAY);
vector< vector<cv::Point> > contours;
cv::findContours(bwImage, contours, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);