C#联合Halcon,右击事件HOperatorSet.GetMposition算子出现异常

在HWindows控件当中做图片缩放的时候,点击鼠标右键触发了该异常:HALCON error #5: Operator failed (FAIL) in operator get_mposition。
目前采用了一个小技巧避免了该异常,即给事件做一个右键阻断。

if (e.Button.ToString() == "Right") //如果是按右键的话,则退出该事件,不然GetMposition算子会出现异常
                    return;

哪位同志有好的解决方式望给予指点,谢谢!
异常原因的图片
By:为中华制造添砖加瓦,愿你我少走弯路。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Halcon支持使用GPU加速进行图像处理,可以使用HDevEngine来在C#中调用Halcon算子并启用GPU加速。 下面是在C#中开启Halcon GPU加速算子的步骤: 1. 在项目中添加对Halcon库的引用,并将Halcon的bin目录添加到系统环境变量中。 2. 创建HDevEngine实例,并调用Open方法打开Halcon的运行环境。同时,设置“writeback”选项为“false”,这样可以避免在每次调用算子时都将结果写回到主内存中。 ```csharp HDevEngine engine = new HDevEngine(); engine.Open(); engine.SetGlobalCtrlVar("writeback", "false"); ``` 3. 设置Halcon算子的输入参数和输出参数,调用HDevEngine的Execute方法来执行算子。在Execute方法中,可以使用“gpu_device”选项来指定使用哪个GPU设备进行加速运算。如果不指定该选项,则Halcon会自动选择最优的GPU设备来进行运算。 ```csharp // 设置算子输入参数 HObject image = new HObject(); HTuple threshold = new HTuple(128); engine.SetInputIconicParamObject("image", image); engine.SetInputCtrlParamTuple("threshold", threshold); // 设置算子输出参数 HObject result = new HObject(); engine.SetOutputIconicParamObject("result", result); // 执行算子并开启GPU加速 engine.Execute("$gpu_device='NVIDIA';threshold(image, result, $gpu_device)"); ``` 4. 在使用完Halcon算子后,可以调用Close方法关闭Halcon的运行环境。 ```csharp engine.Close(); ``` 需要注意的是,GPU加速并不是所有的Halcon算子都支持的,如果需要使用GPU加速,请先查看对应算子的文档,确认该算子是否支持GPU加速。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值