我想做一个涉及计算机视觉的项目。主要是物体检测/识别。经过一番研究,我不断回到 OpenCV。但是所有的教程都是从 2008 年开始的(我想当时它有点大)。它显然不能在 Mac 上的 Python 中编译。我正在使用 Xcode 中的 C++ 框架,但是没有一个教程可以工作,因为它们已经过时并且文档从我可以解析的内容中吸收。
对于我正在做的事情是否有更好的解决方案,是否有人对学习如何使用 OpenCV 有任何建议?
谢谢
我想做一个涉及计算机视觉的项目。主要是物体检测/识别。经过一番研究,我不断回到 OpenCV。但是所有的教程都是从 2008 年开始的(我想当时它有点大)。它显然不能在 Mac 上的 Python 中编译。我正在使用 Xcode 中的 C++ 框架,但是没有一个教程可以工作,因为它们已经过时并且文档从我可以解析的内容中吸收。
对于我正在做的事情是否有更好的解决方案,是否有人对学习如何使用 OpenCV 有任何建议?
谢谢
我在开始使用 OpenCV 时遇到了类似的问题,根据我的经验,这实际上是学习它的最大障碍。这对我有用:
本书:《OpenCV 2 计算机视觉应用程序编程食谱》。这是最新的书,并提供了有关如何解决不同计算机视觉问题的示例(您可以使用“Look Inside!”在亚马逊上查看目录)。它确实帮助我轻松进入 OpenCV 并熟悉该库的工作方式。
就像其他人所说的那样,这些样本非常有帮助。对于本书跳过或仅简要介绍的内容,您通常可以在查看示例时找到更详细的示例。您还可以在本书和示例之间找到解决相同问题的不同方法。例如,对于查找关键点/特征,本书展示了一个使用 FAST 特征的示例:
vector<KeyPoint> keypoints;
FastFeatureDetector fast(40);
fast.detect(image, keypoints);
但是在示例中,您会发现一种更灵活的方法(如果您想选择使用哪种关键点检测算法):
vector<KeyPoint> keypoints;
Ptr<FeatureDetector> featureDetector = FeatureDetector::create("FAST");
featureDetector->detect(image, keypoints);
根据我的经验,事情最终会开始点击,对于更具体的问题,您会开始在博客或 StackOverflow 上找到最新信息。
让我补充几点。首先,我可以向您保证,OpenCV 的 Python 绑定可以在 Mac 上运行。我每天都使用它们。
许多人喜欢 OpenCV 的原因有很多:
就像生活中的一切一样,它并不完美:
还有其他选择(具有其他优点和缺点)带有图像处理工具箱的 MATLAB 就是这样一个例子。
想到的最简单的答案是阅读示例代码并稍微了解一下,并尝试您的想法是否有效。api 确实发生了变化,而且大部分教程都是为 OpenCV 的第一个版本编写的,看起来没有人费心重写它们。然而,它背后的核心思想并没有改变。因此,如果您找到回答您的问题的教程,但使用旧 API 编写,只需查看文档以了解已使用函数的现代替换。这并不容易和快速,但看起来很有效。如果您使用最新(实际上是 2.3)版本,我建议同时使用2.1 文档和2.3 文档 + 教程. 您还应该查看应该与库一起安装的示例。有很多关于如何使用文档中未提及的结构和技巧的提示。最后,不要害怕查看库本身的代码(如果您自己编译它)。不幸的是,这是我知道的唯一来源,例如检查哪些代码对应于哪种类型的Mat
对象。