python - 对象跟踪 : MATLAB vs. Python Numpy

标签 python matlab numpy tracking video-processing

我很快将开始最后一年的工程项目,包括实时跟踪在 2D 表面上移动的物体。这些对象将由我的算法使用 feature extraction 注册.

我正在尝试做一些研究来决定我应该使用 MATLAB 还是使用 Python Numpy(Numerical Python)。我正在考虑的一些因素:

1.) 经验

我在这两个方面都有相当的经验,但在使用 Numpy 进行图像处理方面可能更有经验。但是,我一直发现 MATLAB 非常直观且易于上手。

2.) 实时能力

非常重要的一点是我的选择能够支持实时采集外接摄像头的视频数据。我找到了 MATLAB 的链接展示如何去做。我确信对于 Python 也是可能的,或许使用 OpenCV 库?

3.) 性能

我听说,虽然从未使用过,但 MATLAB 可以轻松地将独立计算拆分为 multiple cores .我认为这会非常有用,我不确定 Numpy 是否同样简单?

4.) 价格

我知道使用 MATLAB 会产生相关费用,但我将在大学工作,因此我可以免费使用完整的 MATLAB,因此价格不是一个因素。

我将非常感谢任何做过类似事情的人的任何意见,以及你的经验。 谢谢!

最佳答案

Python(带有 NumPy、SciPy 和 MatPlotLib)是新的 Matlab。所以我强烈推荐 Python 而不是 Matlab。

我在一年多前进行了更改,我对结果非常满意。

这是 Python 和 Matlab 的简短优缺点列表

Python 专家:

  • 面向对象
  • 易于编写大型“真实”程序
  • 开源(因此完全免费使用)
  • 快速(大多数繁重的计算算法都有一个 python 包装器来连接 C 库,例如 NumPy、SciPy、SciKits、libSVM、libLINEAR)
  • 舒适的环境,高度可配置(iPython,用于 VIM 的 python 模块,...)
  • 快速发展的 Python 用户社区。大量文档和愿意提供帮助的人

Python 缺点:

  • 安装起来可能会很痛苦(尤其是 OS X 中的某些模块)
  • 绘图操作不像在 Matlab 中那么好/容易,尤其是 3D 绘图或动画
  • 它仍然是一种脚本语言,因此只能将其用于(快速)原型(prototype)制作
  • Python 不是为多核编程而设计的

Matlab 专家:

  • 非常容易安装
  • 强大的工具箱(例如信号处理、系统生物学)
  • 只要购买许可,即可获得统一文档和个性化支持
  • 易于绘制动画和交互式图形(我发现这对运行实验非常有用)

Matlab 缺点:

  • 不是免费的(而且很贵)
  • 基于 Java + X11,看起来非常丑陋(好吧,我承认我在这里完全有偏见)
  • 难以编写大型且可扩展的程序
  • 许多 Matlab 用户正在转向 Python :)

关于python - 对象跟踪 : MATLAB vs. Python Numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11133724/

相关文章:

python - Numpy 图像数组错误维度 Python 和 Keras

python - 有没有办法使用 numpy 的数组索引对列执行多重检查?

python - 正则表达式 : chopping last character if second last is upper case?

Python,列出有规律的差距

python - 有没有办法创建带有参数的符号链接(symbolic link)? (Linux)

matlab - 这个旋转矩阵(关于向量的角度)是否仅限于某些方向?

python - 按外键分组并显示相关项目 - Django

Java JNI,dll的多个版本: How to specify which dll is being used for native calls (matlab jvm)

matlab - OPC 服务器 : Start Stop Pause getData(again use) DYMOLA MATLAB

python - 计算过程中 cumprod 的裁剪值