halcon 11与halcon 10变动

来源:互联网 发布:国资委待遇怎么样知乎 编辑:程序博客网 时间:2024/06/03 17:45


Halcon11和Halcon10相比采用了新的C++接口,新接口特点如下:

1) 新版本Halcon/C++接口与Halcon/.NET接口统一

2) 拥有基于异常的错误处理

3) 增加新类HString

4) 支持数据类例如:HPose

5) 使面向过程和面向对象的混合编程更加简单

值得注意的是Halcon11不是向下兼容的,也就是说 Halcon11不兼容Halcon10以及之前的版本。如果用户想将原来写的Halcon10/C++代码移植到Halcon11中则需要进行相应的改动,包括编程环境配置、变量定义、函数名称等等。下面我们对代码移植进行一个较详细说明。

1) 链接库更改:

Windows系统改为:

/libpath:"$(HALCONROOT)\lib\$(HALCONARCH)" halconcpp10.lib

              Linux系统改为:

                     -L$(HALCONROOT)/lib/$(HALCONARCH)-lhalconcpp10 -lhalcon

2) 代码更改:

a)        命名空间修改:

// 旧版                                                    //新版

using namespaceHalcon;                           usingnamespace HalconCpp;

...                                                           ...

b)       代码修改:

                                     i.             函数命名更改,例如:mean_image改为MeanImage

                                   ii.             错误处理要基于异常捕捉

                                 iii.             新版不再支持数组标志Array,例如:HImageArray改为HImage

                                  iv.             使用HString做文字输出

                                    v.             从程序中Hobject移除,替换为HObject(注意下划线部分)

                                  vi.             运算符以及变量命名变更:

//旧版                                                      //新版

GetEnv                                                    TupleEnvironment

ToString(pattern)                                       TupleString(pattern)

Subset                                                      TupleSelect

Add, Sum,Sin,...                                      TupleAdd,TupleSum, TupleSin, ...

Substring                                                  无

Reset                                                        Clear

变更例子:

       //旧版                                                      //新版

...                                                           ...

Hobject Iconic;                                         HObjectIconic; // upper-case O

HImage Image;                                        HImageImage;

HImageArrayImages;                              HImage Images;

HRegionArrayRegions;                            HRegionRegions;

HXLDArray XLDs;                                  HXLD XLDs;

charCharacters[MAX_STRING];               HStringCharacters;

...                                                           ...

read_image(&Iconic,"clip")                      ReadImage(&Iconic,"clip")

long Var;                                                 HlongVar;

HTuple Values;                                         HTupleValues;

...                                                           ...

Var =Values.Num();                                 Var= Values.Length();

...                                                            ...

备注:#defineHCPP_LEGACY_API可以使用旧的HTuple成员函数

例如:

                                                                                    #defineHCPP_LEGACY_API

HTuple Values;                                                       HTupleValues;

...                                                                                ...

Values.Reset()                                                         Values.Reset()// better use Clear()

3) 编译环境更改:

Include路径设定变更

旧版                                                                新版

$HALCONROOT/include/cpp                           $HALCONROOT/include/halconcpp

0 0
原创粉丝点击