尝试在二进制图像上运行findContours”
Mat conv(image.size(), CV_8U);
image.convertTo(conv, CV_8U);
vector<vector<cv::Point> > contours;
findContours(conv, contours, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);
引发错误:OpenCV Error: Unsupported format or combination of formats ([Start]FindContours support only 8uC1 images) in cvStartFindContours,
有任何想法吗?谢谢
最佳答案
从the documentation:
您会看到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);
关于image-processing - findContours错误 'support only 8uC1 images',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13203981/