将Halcon代码迁移到OpenCV

时间:2018-01-10 13:51:18

标签: python opencv computer-vision halcon

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

有没有人知道这个任务的库?

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

3 个答案:

答案 0 :(得分:3)

我不会把时间花在这样的努力上。这些是一些原因:

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

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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