C#中封装halcon函数的报错
1初步调试
目的:使得C#可以通halcon导出的代码。
1.1报错
发生错误: HALCON error #1401: Wrong number of values ofcontrol parameter 1 in operator set_dict_tuple
分析错误,set_dict_tuple算子的第一个参数不对。注意halcon参数是从1开始计算,没有第0个参数。
1,2解决办法
-
halcon中形参转C#的机制:
-
C#中的任何错误来源于halcon代码细节没有到位。
我们发现HTuple被赋值给了字典hv_result,这导致了除了问题。
1.3问题溯源
我们没有在函数内部创建字典对象作为输出。
create_dict(ResultDictOut)
gen_empty_region (UnionROIOut)
gen_empty_obj (DetectLinesOut)
2封装算法核心
2.1输入参数
将需要的参数在halcon写出来。那么在代码中需要使用this.parameter传入的只有数值,很好辨认。
- 变量分组。
C#只能有一个基类,但是可以有多个基接口。
子类的访问级别不可以超越父类的访问级别
类成员重写,类成员扩充
base只能访问上一层的父类成员,而不能访问上面多层的父类成员。
父类的非默认构造函数无法被子类继承
类成员的访问级别不会超越类的访问级别