c# - Emgu,.FindContours() 和 CvInvoke.FindContours() 有什么区别

标签 c# opencv image-processing emgucv

我刚开始学习 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。有什么想法吗?

最佳答案

您使用的是最新版本。

如果你快速浏览一下版本文档 2.4 , 3.1 您可以看到,函数 FindContours() 已从 Image 类中删除,但仍然是 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# 中的示例扩展..

关于c# - Emgu,.FindContours() 和 CvInvoke.FindContours() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38611298/

相关文章:

c# - 根据元素的 x,y 位置打印列表内容(离散整数)

python - 如何在 Python 中使用 OpenCV 检查包含另一个轮廓的轮廓?

image-processing - ImageMagick:在图像上放置一个部分透明的瓷砖

c# - lambda->表达式树转换过程是否在任何地方指定?

c# - 通用类型 : There is no implicit reference conversion from ToolStripStatusLabel to Control

python - Opencv:检测 FFT 上最亮的线

python - 使用 OpenCv 检测图像上的文本并计算使用的面积

java - 使用 OpenCv 和 android 进行图像识别

c# - 根据变量变化排序和更新对象列表

python - OpenCV:getOptimalNewCameraMatrix()-newImgSize参数吗?