halcon编程

2.1 Halcon的核心,资料结构以及内部管理机制

  1、效率:缩短执行时间,复杂计算维持良好效率;

  2、开放:开放的架构,能内外进行数据的交换,能整合使用者自定的计算功能以及一些非标准的取像设备;

  3、标准化:算子的命名,功能以及使用方式,资料结构遵循严格的规则,每个算子有详细的说明,使使用者有最快的上手。

 

 

   以上表明两大Halcon有两大要点:算子和资料说明。

2.1.2.2 Regions

  region是由游程编码Run-length-code表,示的多个region连接成一个region,connection。

2.1.2.3 XLDs

  XLDs是eXtended Line Description的缩写,包含了所有等值线以及多边形的信息,入edges_sub_pix之类的亚像素精度算子产生的像素点属于XLD。

  等值线:一连串坐标点的序列,相邻两点间以直线相连,一般像素点之间的距离大约是1Pixel,XLD除了点坐标信息外,还包含了全域以及区域的属性。

2.1.2.4 Control Tuples、

  数组,Control_tuple的下标由0开始,icon_tuple的下标由1开始。

2.1.2.5 Handles

  每个Handle都有一个唯一的整数数值,由系统底层自行产生。如,图形窗口,socket,取像设备,OCR,OCV,measuring,matching等等,都会以handle来代表要操作的对象。

2.1.3 Parrallel Halcon

  Parallel HALCON支持parallel programming(e.g.,multi-threaded programs),具有thread-safe(线程安全)以及reentrant(可重入),并行执行。

2.3 HALCON联合编程

  HALCON提供有三种语言界面,C、C++为特定语言使用,COM界面可以在Visual Basic,C#,或是Delphi中使用,halconc.*,halconcpp.*,halconx.*

2.3.1 C

  由于C不含析构函数,因此需要用clear_obj来释放定义的图像变量,复制、产生、清除或是处理tuple时,会用到macros功能。以下程序代码例举如何在文件中读取一张图像,并且显示在图像窗口上。

  read_image(&Monkey, "monkey");

  get_image_pointer1(Monkey,&Pointer,Type,&Width,&Height);

  open_window(0,0,Width,Height,0,"visible","",&WindowHandle);

  disp_obj(Monkey,WindowHandle);

2.3.2 C++

  以下例子为读取图像显示在图形窗口中,并且进行一些基本的blob分析。

HImageX image = new HImageX();
HRegionX region;
image.ReadImage("monkey");
region = image.Threshold(128,255);

2.4 延申HALCON功能

2.4.1 Extension Packages(User-Defined Operators)

  HALCON提供有Extension Package界面,用于加入新的算子(C语言撰写)。

2.4.2 Frame Grabber界面

2.5 HALCON的使用极限

  图像尺寸:32768*32768

  内存中图像的阵列数目:100000

  每张图片的通道数:1000

  tuple中的数值数目:30000

  一条等值线上的取样点书目:30000

  一个多边形上的角点数目:10000

  图像坐标:-32768 ~ +32768

   字符串长度:1024字节

3.1.2 检测电源供电线

  

 

posted @ 2020-02-24 21:20  鸡鸣昧旦  阅读(921)  评论(0编辑  收藏  举报