HalconAssit开发背景:
大家好,我是HalconAssit得作者。首先得解释下开发这款工具的得原因。作为视觉工程师,可以说Halcon 大家应该或多或少都接触过。功能非常强大,算子非常全,开发的自由度也非常高,但是唯一的得缺点应该是GUI支持这块稍显欠缺。 在我也c# 做halcon二次开发的时候,发现断点调试时查看变量如region,imag比较麻烦,由于我用的版本,官方vs插件没法使用,当然网上也有方法,但是操作其他太麻烦,就放弃了。作为一个软件工程师,就是喜欢折腾,就自己琢磨了这个调试工具。可以断点查看region,image,方便对复杂算法程序进行调试。写程序,非常重要的是可调试性。没可调试性,不清楚中间步骤,就在出现异常时,没法准确定位问题。 也许这就是我喜欢编程的原因,能通过编程解决一些痛点问题,并能分析给大家使用 先简单开心使用视频
HalconAssit 组成
HalconD Visual Studio 插件,目前支持VS2019 VS2022,语言方面目前只支持C#,C++后期会支持
HalconAssit.Lib.dll 引用到用户代码里的库。不引入的话,使用插件会提示错误,这个库非常简单,代码放到开源地址里了
GUI客户端 图像的显示放到了专门的GUI客户端里面。没有将GUI整合到HalconD插件里的原因是,插件尽量简单,不包含Halcon引用,这样插件就不一样Halcon版本。插件也就会更通用一些
使用方法:
安装Visual Studio 扩展插件 安装文件在VSIX文件夹下面,请选择对应的版本,目前支持的vs2019 和vs2022
引用HalconAssit.Lib.dll alconAssit.Lib.dll 引用到自己项目中,在主窗体的构造函数中 调用HalconAssit.HalAssit.Init();此函数什么也不做,就是将此类库加载到程序中。 也可以将Code目录下的 HalconAssit.cs 文件加入到项目中,主要不要改代码中的命名空间,然后再主窗体构造函数中调用HalconAssit.HalAssit.Init(); 为什么要这么做,这里解释一下,HalconAssit.Lib.dll 里面是个静态类,第一次使用时候才加载,我们的实际项目是不会用到这个的,是给插件使用的。所以如果不手动 调用这个类里面的函数,这个库是不会加载到我们项目代码的运行空间。
打开 GUI客户端 在自己项目里设置断点,运行到断点后,程序暂停,全选要查看的变量右键点击HalconD按钮,如果一切正常 图像或者Region 就显示到GUI客户端了。
工具地址
https://gitee.com/semonpic/halcon_assit