今天偶然发现关于HObject和HImage的解释,分享一下。
HALCON /C++接口提供两种不同的方法来在C++中使用Halcon:面向过程和面向对象 。
面向过程的方法是直接调用halcon运算符,如下。
HObject original_image, smoothed_image;
ReadImage(&original_image, "monkey");
MeanImage(original_image, &smoothed_image, 11, 11);
以面向对象的方式调用HALCON操作符,是通过一组类的形式:
HImage original_image("monkey");
HImage smoothed_image = original_image.MeanImage(11, 11);
-----
这两种方法产生的代码明显不同,其功能也以不同的方式呈现。 例如可以通过HImage类的构造函数从文件中读取图像。
虽然Mvtec更推荐使用面向对象的方式,但是在HDevelop中只能导出面向过程的代码,我们一般为了能够快速集成,更多人使用了面向过程的编程方式。
------
如何转换?
HObject p_image;
ReadImage(&p_image, "barcode/ean13/ean1301");
HImage o_image(p_image);