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