我已经使用OpenCV相当长的一段时间了,并且想知道转换到MATLAB是否是一个好主意。据我所知,它们都是基于底层OpenCV库构建的。OpenCV是开源的,这是一个明显的优势,并支持更多的平台。
我正在尝试针对瞳孔检测的特定算法,因此需要结果非常精确。
有人知道MATLAB使用的速度、处理或内置函数方面是否有任何优势吗?
我已经使用OpenCV相当长的一段时间了,并且想知道转换到MATLAB是否是一个好主意。据我所知,它们都是基于底层OpenCV库构建的。OpenCV是开源的,这是一个明显的优势,并支持更多的平台。
我正在尝试针对瞳孔检测的特定算法,因此需要结果非常精确。
有人知道MATLAB使用的速度、处理或内置函数方面是否有任何优势吗?
如果您已经了解OpenCV,那么建议您继续使用OpenCV。目前,OpenCV是最全面的计算机视觉开源库,并拥有庞大的用户社区。相比Matlab,OpenCV提供更多的计算机视觉函数,并且许多函数已在GPU上实现。该库正在不断更新(每3到4个月发布一个更新版本)。通常情况下,C++ OpenCV代码运行速度比Matlab代码快(如果不够快,您可以通过优化源代码使其更快)。
Matlab适用于快速原型设计,而且Matlab代码非常容易调试。它具有良好的文档和支持。但是,正如其他人所提到的,Matlab不是开源软件,其许可证价格昂贵,程序也不可移植。Matlab是一种解释性语言,这会对其性能产生负面影响。在计算机视觉中,性能非常重要,特别是如果您正在进行实时视频处理。它的程序也可以运行得很快,但是您必须依赖高级函数(即以C语言编写的内置函数)、mex函数(自己编译的C代码),并学习如何矢量化您的代码以获得合理的速度。
std::sort
通常比C语言的qsort
快6倍。这是因为C++的排序是一个模板,它是一个高级构造,允许优化器访问比较函数。 - MSalters如果你真正了解OpenCV,那么你肯定不会考虑从OpenCV转向Matlab。
你可以使用Python或C++甚至Java等编程语言来使用OpenCV。
实际上,你不应该仅考虑OpenCV来完成整个任务。
就像OpenCV一样,其他库也存在。
例如,
numpy -> 用于快速数值计算
matplotlib -> 显示图形窗口等,类似于Matlab。
scipy -> 用于快速科学计算。
如果你使用你的编程语言+OpenCV+Matplotlib+Numpy+Scipy,你肯定会对OpenCV感到惊喜。 而且,不要担心如何将这些库融合在一起。只需提及它们的名称并进行实际编码即可。就这样。