我刚开始学习Emgu和OpenCV。所以这可能是一个愚蠢的问题。当我查看Emgu文档(请参阅链接http://www.emgu.com/wiki/files/3.1.0/document/html/cb24a129-d9ce-57f3-19ad-0eaa27a77317.htm)时,我找不到示例。但我想你以
的形式使用它CvInvoke.FindContours(...)
但是当我搜索stackoverflow时,我发现这个人只是在他的代码enter link description here的中下部分使用了以下表格
grayImage.FindContours()
然而,当我尝试后期时,Visual studio根本就不接受它。 (即,当我输入grayImage.F时,弹出窗口根本没有FindContours功能)。
我正在使用最新的opencv和emgu。有什么想法吗?
答案 0 :(得分:2)
您使用的是最新版本。
如果您快速查看版本的文档 2.4,3.1 你可以看到,函数FindContours()已从Image Class中删除,但仍然是CvInvoke类的一部分。
如果你坚持使用看到的语法,你可以添加自己的扩展名:
public static class Extension
{
public static VectorOfVectorOfPointF FindContour(this UMat img,Mat hierarchy = null, Emgu.CV.CvEnum.RetrType type = Emgu.CV.CvEnum.RetrType.List,Emgu.CV.CvEnum.ChainApproxMethod method = Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple )
{
VectorOfVectorOfPointF contours = new VectorOfVectorOfPointF();
CvInvoke.FindContours(img, contours, hierarchy, type, method);
return contours;
}
}
这只是c#中的示例扩展名。