Halcon/C++编程

Halcon软件安装后,其子目录下有一个include文件,其下的头文件均是用C/C++编写,可以在VS2005或更高版本下进行Halcon/C++编程,在这之前需要对VS进行相关配置,如下图所示:


配置完成后,即可在VS下利用Halcon接口进行编程,下面是一个示例:

#include <HalconCpp.h>
int main()
{
using namespace HalconCpp;


HImage Mandrill("monkey"); // 读取图像,即monkey.png,初始化的时候可以不带扩展名
Hlong width,height;
Mandrill.GetImageSize(&width,&height);
HWindow w(0,0,width,height); // 将窗口大小设置为图片大小
Mandrill.DispImage(w); // 在窗口w显示图像
w.Click(); // 等待鼠标的点击动作
w.ClearWindow();//清楚窗口中的图像
HRegion Bright = Mandrill >= 128; // 选择灰度值大于128的像素
HRegion Conn = Bright.Connection(); // 将所选择的像素连接成区域


HRegion Large = Conn.SelectShape("area","and",500,90000);// 选择至少有500个像素大小的区域


HRegion Eyes = Large.SelectShape("anisometry","and",1,1.7);
Eyes.DispRegion(w); // 显示
w.Click();
}

其中,HImage继承自HObject,注意图像数据(iconic data)都继承自类HObject,下面是类HImage的头文件部分代码:

// Represents an instance of an image object(-array).
class LIntExport HImage : public HObject
{


public:


  // Create an uninitialized instance
  HImage():HObject() {}


  // Copy constructor
  HImage(const HImage& source) : HObject(source) {}


  // Copy constructor
  HImage(const HObject& object);


  // Create HImage from object id. For copy=false takes
  // over management of input key. Type of key must match!
  explicit HImage(Hkey key, bool copy=true);


  // Access of object tuple element
  const HImage operator [] (Hlong index) const;


  // Deep copy of all data represented by this object instance
  HImage Clone() const;

...

}

数据类型Hlong的定义如下:

typedef INT4_8  Hlong;

即4或8字节的整型。

HRegion亦是图像数据,所以它也继承自类HObject,下面是类HRegion的部分源码:

// Represents an instance of a region object(-array).
class LIntExport HRegion : public HObject
{


public:


  // Create an uninitialized instance
  HRegion():HObject() {}


  // Copy constructor
  HRegion(const HRegion& source) : HObject(source) {}


  // Copy constructor
  HRegion(const HObject& object);


  // Create HRegion from object id. For copy=false takes
  // over management of input key. Type of key must match!
  explicit HRegion(Hkey key, bool copy=true);


  // Access of object tuple element
  const HRegion operator [] (Hlong index) const;


  // Deep copy of all data represented by this object instance
  HRegion Clone() const;

   ...

}

下面是示例运行结果:


单击后的运行结果:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值