Halcon引擎 范例C:\Users\Public\Documents\MVTec\HALCON-21.11-Progress\examples\hdevengine\c#\ExecExtProc\vs2005

Halcon引擎-CSDN博客

https://blog.csdn.net/weixin_42365213/article/details/120235219?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-3-120235219-blog-123001990.235%5Ev38%5Epc_relevant_sort_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-3-120235219-blog-123001990.235%5Ev38%5Epc_relevant_sort_base3&utm_relevant_index=6

 

这个功能是用于在C#那边用halcon引擎执行程序时的交互性调试用的。

下面的主机与端口是指的C#那边的主机与端口。

 

 

你必须在C#这边用下面这句

MyEngine.StartDebugServer(); 开启调试服务器。

这个调试服务器默认的地址是: localhost 端口是:57786

勇哥感觉指定网络中另一台机器做为服务器也应该是可以的。

C#

private void Form1_Load(object sender, EventArgs e)
{
var halconExamples = HSystem.GetSystem("example_dir");
var ProcedurePath = halconExamples + @"\hdevengine\procedures";
ProgramPathString = halconExamples + @"\hdevengine\hdevelop\fin_detection.hdev";
MyEngine.SetProcedurePath(ProcedurePath);
MyEngine.StartDebugServer();

Window = hWindowControl1.HalconWindow;
Window.SetDraw("margin");
Window.SetLineWidth(4);
}
然后你就可以在C#那边用halcon引擎把程序跑起来。

这时候你会看到halcon这边会显示当前引擎跑的程序代码。(灰底显示)

然后你可以下断点。

然后F6键可以单步, 可以正常查看图标变量内容。

 

下面是C#那边结束调试后halcon这边的报告。

 

 

 

HALCON与C#结合处理图象时,通常情况是将HALCON图像处理部分导出C#代码,然后执行。而HALCON提供了一种脚本执行算法的方式,该方式的优点是:1、C#代码与HALCON图像处理分离,不需要将HALCON图像处理部分导出成C#代码,否则每一次修改HALCON 时,C#相应部分就需要跟着更改,便捷性不足。2、脚本方式执行算法可降低内存泄漏。
下面介绍使用HALCON引擎执行脚本基础部分:使用的是VS2017和HALCON20.11学习版。
在项目中添加下面两个库文件

 

主要用得到的类:HDevEngine、HDevProgram、HDevProgramCall、HDevProcedure、HDevProcedureCall、HDevOpMultiWindowImpl、HDevEngineException。
HDevEngine类是管理全局设置。如设置或获取全局变量的值、设置脚本路径、启动停止调试模式等。
HDevProgram类加载.hdev格式文件以及获取文件内部参数一般信息。
HDevProgramCall类执行.hdev文件格式脚本,并获取变量的值。
HDevProcedure类加载.hdvp格式外部函数以及内部函数。
HDevProcedureCall类执行.hdvp外部函数和内部函数。并且可以设置或获取外部函数、内部函数参数。
HDevOpMultiWindowImpl类主要是与显示结果相关,在脚本中执行的结果可以显示在C#中。
HDevEngineException类是引擎相关的异常类。
例子中,展示了三种不同的方式的基本使用:
方式一:执行.hdev格式。无任何封装函数,该种方式重用性差,无法设置参数。
方式二:路径+.hdvp格式。该方式比较推荐使用,可设置输入参数,获取输出参数,重用性好。
方式三:调用.hdev中的封装函数(外部函数、内部函数)。该方式优点在于方便在HALCON中读图调试。
————————————————
版权声明:本文为CSDN博主「叫我老猫也存在」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42109102/article/details/123001990

 

posted @   QuincyYi  阅读(251)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示