我正在寻求进行图像/视频处理,并且正在寻找一个好的图书馆。我听说过两个,OpenCV和IVT。我想听听你对哪一个更好开始的看法,两者的优点/缺点是什么,以及哪一个更适合以后可能的商业用途。
答案 0 :(得分:4)
两者都提供非常相似的功能 - 大约95%的功能重叠。
两者均获得BSD(ish)许可,并广泛用于商业包装。
IVT是一种更清洁,更现代的C ++设计,但是对opencv的新c ++绑定运行良好。 Opencv还有一些'C'类型的宏,但它也意味着它可以从C中使用.Opencv也得到了python和其他语言的很好支持,不知道IVT。
还有CImg。它只需要一个头文件并使用C ++类型模板,因此您可以编写像result = image.blur().sharpen().edge()
这样的代码,就像Mathematica一样!
它没有相同的功能深度,特别是在识别和机器学习等方面,但绝对更容易使用。这是GPL / LGPL,因此可以小心使用。
OpenCV的使用范围更广,因此有更多的用户可以回答问题 - 但它也有更多的初学者提出问题!
我的决定因素是openCV正在转向支持(几乎)CUDA中的所有功能(即在并行GPU上),这对于任何需要实时视频处理的东西都很棒。
除此之外,我无法评论我没有真正对IVT进行足够基准测试的表现。 OpenCV确实使用自定义SSE2汇编程序进行大量操作,如果你有多核/超线程CPU,则使用TBB来平行其余部分。
答案 1 :(得分:1)
我是像你一样的初学者,我个人说OpenCV。我对OpenCV的第一次学习经验比IVT更轻松,因为文档非常简洁明了,还有常见的初学者书籍,OpenCV的许多教程和示例项目。