AForge和OpenCV的区别

我只是学习计算机视觉和C#。 看起来像两个突出的image processing库是OpenCV和AForge 。 这两者有什么区别?

我正在用C#编写一个基本的图像编辑器,而在研究过程中,我也遇到过两篇文章。 但我真的不知道为什么我会select一个。 我想最终改进应用程序,以包括更多的高级function。

谢谢。

我现在在学校使用OpenCV作为项目,我浏览了AForge的文档,他们的function看起来不一样。 AForge有很多的filter,可能是很好的不同的转换和image processing。 但是在其他方面似乎还不够。 我找不到任何matrix操作,因为它在计算机视觉中非常有用,所以这是令人失望的。 从我看到的文档来看,我们目前的项目(从图像序列重build三维点云)将不可能单独使用AForge。

将AForge与一个好的线性代数库相结合,你可能会有一些真正有用的东西。

至于OpenCV它有一个丰富的function集,但是编程有点棘手。

那么,为什么不使用两者;)?

我正在使用(字面上在C#…大声笑)EMGUCV.NET(这是一个OpenCV C#包装)和AFORGE.NET在同一时间:

AFORGE.NET加上它的“image processing实验室”对过滤选项(边缘检测,阈值等等)和缓解查看function非常有意义。

OpenCV提供了所有其他像SIFT / SURF和其他更复杂的image processing例程。

这就是为什么你使用.NET:简单地把你需要的所有组件放在一个应用程序:)

如果你想用你所说的越来越高级的function来改善你的应用程序,我会selectOpenCV–但是,你的成功的一部分取决于C#端口被主动更新,这不应该太多考虑到三个港口的麻烦。 我认为EmguCV似乎是更新后的最佳版本之一,但是当我看到它时,缺less文档(但是可以将C ++代码翻译成具有C ++知识的C#代码)。 AForge对我来说似乎更容易,而这正是我现在使用的。 OpenCV也支持haarcascade.xml文件,您可以使用它包含人脸检测。

因此,最后一点:两者都适合你,OpenCV更广泛的使用/支持(虽然大多数用户基础是C ++),但是AForge更容易。 这一切都归结于你想要做的事情。

    Interesting Posts