【问题标题】:Migrate Halcon code to OpenCV将 Halcon 代码迁移到 OpenCV
【发布时间】:2018-06-19 17:06:42
【问题描述】:

我正在使用名为 Halcon 的商业计算机视觉软件开发解决方案。我正在考虑将我的解决方案迁移或转换为 Python 中的 OpenCV。我想开始在 Halcon 中开发我的其他计算机视觉解决方案,因为 IDE 非常棒,他们会生成一个脚本来将它们迁移到 OpenCV。

有人知道这个任务的任何库吗?

我想开始开发一个开源 SDK 来将 Halcon 转换为 OpenCV。我正在考虑开始开发从 Halcon 到 Python 的所有内部函数。有什么建议吗?

【问题讨论】:

  • 如果你想知道How OpenCV-Python bindings are generated? How to extend new OpenCV modules to Python?那就参考这个链接docs.opencv.org/3.0-beta/doc/py_tutorials/py_bindings/…
  • 不,我想将我的 Halcon 程序迁移到 OpenCV。
  • 定义你的migrate。一般按行的格式写代码,然后放到contrib目录下,添加一些cmake文件,重新cmake。
  • 我不知道“迁移”是否适合我的问题,我认为转换或翻译可能会更好。我有一个用 Halcon 编写的代码。我需要转换为 OpenCV。
  • Halcon 有很多功能可以用 OpenCV 完成,但没有完成(高级功能) 其他可以完成的功能可能有很多可能很难弄清楚的参数halcon 使用哪些(除非它们具有相同的参数),无论如何我认为为它做一个自动工具是一项艰巨的任务。 (两个库都很大)和 AFAIK 没有可用的 :(

标签: python opencv computer-vision halcon


【解决方案1】:

我不会在这样的努力上投入时间。以下是一些原因:

  • 对于简单的函数(模糊、腐蚀、扩张),Halcon 和 OpenCV 对同一函数有不同的实现,并且可能您的输出会略有不同(例如,一个可能向上取整,另一个向下取整)。一个在 Halcon 中正常运行的复杂程序在 OpenCV 中可能会因为这些小差异(蝴蝶效应)而失败。

  • 可能有复杂的功能(模式匹配算法、深度学习)存在于一种环境中,而在另一种环境中不存在。

  • OpenCV 用户通常没有 Halcon IDE。我喜欢 OpenCV,因为它是开源和免费的,我不会考虑使用 Halcon IDE,因为它不是。此外,OpenCV 有很多功能,而且改进非常快(我不知道 Halcon)。如果 Halcon 比 OpenCV 好得多(更流行、更快、跨平台,所有 OpenCV 功能都在 Halcon 中实现)并且我的项目有钱,我会使用 Halcon IDE 进行开发,我也会在生产中使用它(并且完全忽略 OpenCV)。在任何一种情况下,我都不会使用将一个转换为另一个的工具。就像用Visual Studio写Linux内核一样,也许有人会,但我猜应该不是大多数。

如果我不得不花时间在一个开源项目中,我会编写一个更好的 OpenCV 界面(正如 Vladimir Perković 建议的那样)。在这个方向上有一些努力(如果你搜索可能还有其他东西):

【讨论】:

    【解决方案2】:

    不幸的是,这是不可能的,因为 Halcon 本身不是开源库,并且每个函数都被锁定。

    背后的原因是运行时许可。

    【讨论】:

    • 我不同意你的观点,有些功能很笼统。一些滤波器如高斯或索贝尔和简单的阈值函数很容易用不同的参数迁移。
    • 当然可以,但是您必须为每个函数使用随机数据编写非常广泛的测试,这将证明您的函数在相同输入的情况下提供相同的输出。重点是什么?为 OpenCV 创建更好的用户界面不是更容易吗?
    • 它们的功能背后的想法可能是相同的。但他们使用的算法可能完全不同。 Halcon 使用其专利算法来实现更好更快的输出。这就是他们拿走你钱的原因。
    【解决方案3】:

    这取决于您使用的是哪些 Halcon 功能以及您为什么要这样做。这个问题似乎很笼统。我建议您将您的 Halcon 程序转换为 C++ 并编写一个包装函数来向/从您的 openCV 程序传递参数。这将是在您的 opencv 和 halcon 程序之间提供交互的最简单的选项。希望对您有所帮助。

    【讨论】:

    • 是的,我在想那样做。我知道开发以“自动”方式工作的东西几乎是不可能的,但我认为使用通用功能是可能的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2016-02-26
    • 1970-01-01
    • 2020-11-22
    • 2013-05-08
    • 2013-12-19
    • 1970-01-01
    相关资源
    最近更新 更多