OpenCV findContours函数问题

use*_*668 8 c++ opencv computer-vision visual-studio

我试图在OpenCV中使用findContours函数,但VS 2008给出了一个错误说:

OpenCV错误:未知函数中的错误标志(参数或结构字段)(无法识别或不支持的数组类型),文件........\ocv\opencv\src\cxcore\cxarr ay.cpp,第2476行

此应用程序已请求Runtime以不寻常的方式终止它.有关更多信息,请联系应用程序的支持团队.按任意键继续 ...

这是代码:

Mat_<Vec<float,3>> originalimage;

Mat_<Vec<float,3>> resultingimage;

vector<vector<cv::Point>> v;

originalimage = cv::imread("Original.ppm");

cv::findContours(originalimage,v,CV_RETR_LIST,CV_CHAIN_APPROX_NONE);
Run Code Online (Sandbox Code Playgroud)

提前致谢

dnu*_*nul 4

FindContours 仅接受二值图像。即,cvThreshold cvAdapiveThreshold cvCanny 输出的任何图像

尝试在 cv::findContours 之前添加此语句

cvThreshold(originalImage,resultingImage,100,100,CV_THRESH_BINARY) 
Run Code Online (Sandbox Code Playgroud)

然后使用 resultImage 调用 findcontours。

如果有效,那么您应该向 cvThreshold 输入正确的参数(100 只是一个示例)。检查相关参考资料。

编辑:resultingImage 应该是单通道图像!