【问题标题】:Image processing using C++ or go ahead with OpenCV?使用 C++ 进行图像处理还是继续使用 OpenCV?
【发布时间】:2018-01-18 05:56:29
【问题描述】:

我有一个问题想从您的经验中学习。我有兴趣在学习图像处理算法的过程中实现它们。你建议我用 C++ 做,还是继续用 OpenCV?

我的目标不是学习 C++ 本身,而是实现我学习的图像处理算法。

在这种情况下,您有什么建议?例如,我不想从 C++ 开始并最终(可能经过漫长的学习曲线)到最终必须处理 OpenCV 的地步。

OpenCV 只是一个例子,你推荐它而不是其他库进行图像处理吗?

感谢您的建议。

【问题讨论】:

  • 只是提供第二个意见,我也推荐 OpenCV。
  • 由于 openCV 是开源的,因此阅读 Gonzalez 和 Woods 的一般图像处理书籍并查看 openCV 中的实现可能是有意义的。我认为你可以学习两种不同的东西:算法本身和实现技巧。
  • 我建议从头开始实施这些算法,以真正学习它们并了解它们是如何工作的。之后,您可以将 OpenCV 用于应用程序,但如果您查看源代码,恕我直言,OpenCV 写得非常糟糕。

标签: c++ opencv image-processing


【解决方案1】:

OpenCV 是完美的选择。

不要重新发明轮子。不要实现你自己有限的、有缺陷的图像阅读器。不要实现自己的非常基本的数据结构来存储和访问内存中的图像。

  1. OpenCV 3.0 有一个相当干净和漂亮的 API。你可以用高 水平的 C++ 概念。例如,您可以使用 STL 风格 矩阵上的迭代器,它们也是模板化的。

  2. 如果你想自己实现一个算法,你可以使用 现有的 OpenCV 代码库,也许可以从那里获取一些东西 更改。 OpenCV 具有许可许可证。

  3. 如果您想加入 GPU 加速,OpenCV 可以 很好地集成,您可以立即开始高水平。

  4. OpenCV 是图像处理和计算机领域的事实标准 C++ 的愿景。如果您想与该领域的其他人一起工作, 您与 OpenCV 有共同点的可能性很高。

【讨论】:

  • 感谢您的精彩回答。你推荐这本书从 OpenCV 开始吗?或者,您还有其他建议吗? shop.oreilly.com/product/9780596516130.do
  • @Simplicity 已经很老了。我会选择online tutorials
  • 本书在 OpenCV 2.0 发布之前问世。在版本 2 之前,OpenCV 仅支持 C 语言。所以这本书可能仍然用于解释算法,但不是关于如何使用 OpenCV 编写代码。
  • 感谢大家的热情回复。我现在明白你的意思了。有推荐的更新书籍吗?我偶然发现了我提到的这个版本的书,它似乎即将推出:amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/…你还推荐它吗?
  • 我无法评论我没看过的书。我真正喜欢的一本书是 Gonzalez 和 Woods 的 Digital Image Processing。不过,这与 OpenCV 或编码无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
  • 2017-04-14
  • 1970-01-01
相关资源
最近更新 更多