尝试在二进制图像上运行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/

10-17 00:37