将 Halcon 代码迁移到 OpenCV
Migrate Halcon code to OpenCV
我正在使用名为 Halcon 的商业计算机视觉软件开发解决方案。我正在考虑在 Python 中将我的解决方案迁移或转换为 OpenCV。我想开始在 Halcon 中开发我的其他计算机视觉解决方案,因为 IDE 令人难以置信,并且它们生成一个脚本以将它们迁移到 OpenCV。
有人知道这个任务的图书馆吗?
我想开始开发一个开源 SDK 以将 Halcon 转换为 OpenCV。我正在考虑开始开发从 Halcon 到 Python 的所有内部功能。有什么建议吗?
这取决于您使用的是哪些 Halcon 功能以及您为什么要这样做。这个问题似乎很笼统。我建议您将 Halcon 程序转换为 C++ 并编写一个包装函数来传递参数 to/from 您的 openCV program.This 将是提供 opencv 和 halcon 程序之间交互的最简单选项。希望对你有帮助。
不幸的是,这是不可能的,因为 Halcon 本身不是一个开源库,而且每个函数都是锁定的。
背后的原因是运行时许可。
我不会在这样的努力上投入时间。这些是一些原因:
对于简单的函数(模糊、侵蚀、膨胀)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ć 所建议的)。在这方面有一些努力(如果你搜索可能还有其他东西):
交互式可视化调试:https://docs.opencv.org/3.3.0/d7/dcf/tutorial_cvv_introduction.html我没试过,但我以前编写和使用过类似的工具,通常就足够了。
Visual Studio中的调试图像:https://docs.opencv.org/2.4/doc/tutorials/introduction/windows_visual_studio_image_watch/windows_visual_studio_image_watch.html
有朝一日我真正想看到的是 visual programming language editor, where you drag and drop boxes and connect them (like in a flowchart). Something similar to LabVIEW, VPL,但开源且适用于 OpenCV。
我正在使用名为 Halcon 的商业计算机视觉软件开发解决方案。我正在考虑在 Python 中将我的解决方案迁移或转换为 OpenCV。我想开始在 Halcon 中开发我的其他计算机视觉解决方案,因为 IDE 令人难以置信,并且它们生成一个脚本以将它们迁移到 OpenCV。
有人知道这个任务的图书馆吗?
我想开始开发一个开源 SDK 以将 Halcon 转换为 OpenCV。我正在考虑开始开发从 Halcon 到 Python 的所有内部功能。有什么建议吗?
这取决于您使用的是哪些 Halcon 功能以及您为什么要这样做。这个问题似乎很笼统。我建议您将 Halcon 程序转换为 C++ 并编写一个包装函数来传递参数 to/from 您的 openCV program.This 将是提供 opencv 和 halcon 程序之间交互的最简单选项。希望对你有帮助。
不幸的是,这是不可能的,因为 Halcon 本身不是一个开源库,而且每个函数都是锁定的。
背后的原因是运行时许可。
我不会在这样的努力上投入时间。这些是一些原因:
对于简单的函数(模糊、侵蚀、膨胀)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ć 所建议的)。在这方面有一些努力(如果你搜索可能还有其他东西):
交互式可视化调试:https://docs.opencv.org/3.3.0/d7/dcf/tutorial_cvv_introduction.html我没试过,但我以前编写和使用过类似的工具,通常就足够了。
Visual Studio中的调试图像:https://docs.opencv.org/2.4/doc/tutorials/introduction/windows_visual_studio_image_watch/windows_visual_studio_image_watch.html
有朝一日我真正想看到的是 visual programming language editor, where you drag and drop boxes and connect them (like in a flowchart). Something similar to LabVIEW, VPL,但开源且适用于 OpenCV。