如前所述,我们建议尽可能使用面向对象方法。不过,也有一些使用过程式方法的理由,例如,如果您想快速集成 HDevelop 导出的代码,而 HDevelop 只能创建过程式代码。
基本控制参数造成的麻烦最小,因为这两种方法都使用了基本类型 long 等和 HTuple 类。图标参数和句柄的转换如下:
HObject p_image; ReadImage(&p_image, "barcode/ean13/ean1301"); HImage o_image(p_image);
只需调用以过程式变量为参数的构造函数,就可以将图标参数从 HObject 转换为 HImage 等参数。
HTuple p_barcode; CreateBarCodeModel(HTuple(), HTuple(), &p_barcode); HBarCode o_barcode(p_barcode.H()); o_code_region = o_barcode.FindBarCode(o_image, "EAN-13", &result);
请注意,HImage 的实例可以在需要 HObject 过程式代码中使用。
正如在 "析构函数和 Halcon 鼻子" 一节 中所述,您不得将 ClearShapeModel 、 ClearAllShapeModels 或 CloseFramegrabber 等算子与相应句柄类的实例一起使用!