HALCON编程及工程应用 第2章 HALCON编程基础
halcon 数学运算
halcon 数学运算【1.HALCON简介】HALCON(Hardware Abstraction Layer for Control Networks)是一款由德国不伦瑞克大学开发的开源软件,用于嵌入式系统的控制和监控。
它提供了一种硬件抽象层,使得开发者可以编写与特定硬件无关的程序。
在实际应用中,HALCON广泛应用于机器视觉、运动控制等领域。
【2.HALCON数学运算基础】在HALCON中,数学运算主要通过内置的数学函数库实现。
这些函数可以处理各种数学问题,包括算术运算、三角函数、对数、指数、逻辑运算等。
为了方便使用,HALCON将这些函数分为几个类别,如基本函数、统计函数、矩阵函数等。
【3.HALCON中的常用数学函数】以下是一些在HALCON中常用的数学函数:- 算术运算:+、-、*、/、%、^- 三角函数:sin、cos、tan、asin、acos、atan- 对数与指数函数:log、log10、exp、sqrt- 随机数生成:rand、randn- 统计函数:mean、stddev、var、sum、prod- 矩阵函数:矩阵加法、矩阵乘法、矩阵转置、行列式、逆矩阵【4.实例演示】以下是一个简单的HALCON程序,演示了如何使用数学函数:```PROGRAM exampleVARi : INT;j : INT;sum : REAL;product : REAL;matrix1 : MAT(3, 3);matrix2 : MAT(3, 3);matrix3 : MAT(3, 3);END_VARFOR i := 1 TO 3 DOFOR j := 1 TO 3 DOmatrix1(i, j) := i * j;END_FOR;END_FOR;sum := 0;FOR i := 1 TO 3 DOsum := sum + matrix1(i, 1); END_FOR;product := 1;FOR i := 1 TO 3 DOproduct := product * matrix1(1, i);END_FOR;matrix2 := matrix1 * matrix1;PRINT "矩阵1:"; matrix1;PRINT "矩阵2:"; matrix2;END_PROGRAM```【5.总结与建议】HALCON提供了丰富的数学函数,可以帮助开发者轻松实现各种数学运算。
Halcon学习笔记
Halcon学习笔记1、Halcon的自我描述Program LogicEach program consists of a sequence of HALCON operatorsThe program can be structured into proceduresThe sequence can be extended by using control operators like if, for, repeat, or while The results of the operators are passed via variablesNo implicit data passing is appliedInput parameters of operators can be variables or expressionsOutput parameters are always variablesHDevelop has no features to design a graphical user interfaceAn HDevelop program is considered as a prototypic solution of the vision part of an applicationHDevelop is typically not used for the final application由此可以看出,Halcon的定位是一个类库,有着完整、快速实现函数,同时提供了HDevelop 作为快速开发的图形化(IDE)界面;但是,Halcon程序并不是一个完整的最终应用软件,它没有用户界面,也不提供显示的数据(公用的数据格式)。
Halcon的初学者也应当从参考Halcon的程序入手,熟悉Halcon类库,也即HDevelop-Based Programming;在此基础上,进入ORClass-Oriented Programming。
HALCON编程
中文手冊快速指引For Evaluation Only.Copyright (c) by Foxit Software Company, 2004 - 2007Edited by Foxit PDF Editor目錄Introducing HALCON (4)1.1 Key Features (4)1.2誰應該用HALCON? (5)1.3 您需要的知識 (5)1.4開始使用HALCON (6)1.5如何取得更多資訊 (6)如何用HALCON來開發程式 (8)2.1 HALCON的核心: 組織架構以及資料結構 (9)2.2 HDevelop快速入門 (12)2.3 在程式語言中使用HALCON (13)2.4 延伸 HALCON功能 (15)2.5 HALCON的使用極限 (15)各種行業的應用 (16)3.1 電子零件和設備 (16)3.2 食物 (19)3.3 醫療和生命科學 (20)3.4鐵、鋼和金屬 (23)3.5機械 (26)3.6 航空攝影測量和遙感 (32)3.7 印刷 (38)3.8 橡膠、合成纖維材料、金屬薄片 (39)3.9 半導體 (41)第一章Introducing HALCONHALCON 是當今machine vision技術的代表,它總是以最新科技為基礎,提供了現今市場中最強大的vision library。
不論您的工作為何,HALCON都能快速而精確的解決問題。
Vision Development Environment一個專業的影像處理工具不能只具有影像處理功能。
影像處理只是整個工作的其中一環,還要有其他軟體功能,像是程序控制,資料處理,硬體方面還有照明和取像設備,以及其他硬體機構等等。
一個影像處理系統除了要易於使用,還必須能夠以富有彈性的方式將上述功能加入開發的流程之中。
為此,HALOCN考量到各種重要的層面:透過一個互動式的工具HDevelop快速達成軟體開發的工作,藉由程式碼的輸出,可以輕易的和標準的軟體開發工具,例如Micrisoft Visual C++ 整合。
Halcon基础知识总结(一文学会halcon基础操作,总结自超人视觉)
Halcon基础知识总结(⼀⽂学会halcon基础操作,总结⾃超⼈视觉)此⽂根据《超⼈视觉 halcon启蒙班》写成,结合图⽚和例程,直观简单地介绍halcon的最基本操作基础知识光学:⼏何光学,物理光学数学:导数为主的⾼等数学,矩阵论五种需求:1.识别定位2.符号识别:⼀⼆维码,OCR3.测量需求4.缺陷需求(最常见,难度最⼤)5.⼿眼标定和抓取(结合运动控制)图像处理⼀般思路1.采集2.预处理拉开灰度⼏何变换去噪:中值滤波,均值滤波,⾼斯滤波抠图3.图像分割⼆值化形态学特征选择ps:Halcon⾥区域和图像是不同概念4.识别显⽰5.通信三⼤数据类型图像,区域,XLD灰度直⽅图勾选“阈值”将灰度值在”绿线和红线之间”的以选定颜⾊进⾏填充将把圈定的阈值范围内的直⽅图均匀拉伸释放到整个直⽅图轴上数组语法* Simple tuple operationsTuple1 := [1,2,3,4,5]Number := |Tuple1|SingleElement := Tuple1[3]Part := Tuple1[1:3]Copy := Tuple1[0:|Tuple1| - 1]运⾏结果读取图⽚的四种⽅法1. ⽂件 -> 读取图⽚2. Image Acquisition -> ⾃动检测接⼝(刷新设备)-> Direct show,从摄像头直接读图3. Image Acquisition -> 选择⽂件,从图像⽂件中读取4. Image Acquisition -> 选择路径,结合正则表达式读取路径下的图⽚PS:⽤Image Acquisition读取时记得点击代码⽣成摄像头抓取模式:在可视化 -> 更新窗⼝中调整同步采集:实时抓取,⼀直抓取异步采集:只等图⽚处理完后,grab_image才开始抓取PS:更多信息包括双相机采集,可以在案例 -> ⽅法 -> 图像采集设备中学习ROI(感兴趣区域)特征检测PS:⼆值化之后的区域虽然不连通,但仍然认为是⼀个区域。
halcon基础(bbs)
基于FPGA的二值图像连通域快速标记连通域标记算法是图像处理、计算机视觉和模式识别等领域的基本算法,它可以对图像中不同目标标上不同的标记,进而提取、分离目标,确定目标的特征和参数,从而对目标进行识别和跟踪。
连通域标记算法广泛应用于军事目标跟踪、工业产品监控、交通路口监控等场合图像处理系统中。
目前的连通标记算法分为两大类,一是基于像素的连通成分标记,另一种就是基于行程的连通成分标记算法。
基于行程的连通域标记算法难以采用硬件实现,一般都采用软件编程的方式在PC机上实现,处理速度较慢,占用资源多。
基于像素的连通域标记采用软件实现速度较慢,适于硬件实现。
针对FPGA的特点,提出了一种适于FPGA实现的连通域快速标记的方法。
在33 MHz工作时钟下,单片FPGA能够完成1 000 f/s的128×128的二值图像标记,处理速度能够满足实时系统要求。
1 标记算法1.1 临时标记连通域标记对二值图像采取从左到右,从上到下的方式进行两次扫描。
第一次扫描过程中,对像素为一的点标记一个临时标记,为零的点不标记,标记完后得到一个等价表,合并等价表形成一个以较大标记值为索引的链表;第二次扫描时,对临时标记的逐个像素进行替代,最后得到以目标出现顺序的自然数顺顺序的标记。
二值图像整个标记处理过程如图1所示。
采用2×2的窗口进行逐行扫描的方式对二值图像的逐个像素进行临时标记,扫描窗口如图2所示。
图2中:P为当前像素;U为当前像素上一行像素对应的标记;L为其左边像素标记;P的临时标记记为PL;当前标记最大值记为LN。
临时标记方法如下:(1)如果当前像素P不为零:如果L和U只有一个不为零,则复制此标记给PL;如果L和U均不为零且相同则复制此标记给PL;如果L和U均为零,则分配一个新的标记LN+1给PL;如果L和U 均不为零但不相同,则复制其中较小一个给PL,并将L和U,存入等价表中。
如图3所示。
(2)如果当前像素P为零则PL为零。
Halcon介绍与安装、入门基础知识
Halcon介绍与安装、入门基础知识按照安装录像完成halcon的安装去我们的qq群龙熙智能halocon欣赏下一个halcon案例Tab——当你输入算子时,可以补充后面的内容;Enter+Shift ——换行不运行语句F1——帮助,解释光标所在行算子;F2——重置程序,从头再来;F3——激活(注释后取消注释);F4——注释程序;F5——运行,运行到结束,出结果;F6——单步运行,一句句运行;————————————————文件在哪里?C:\Users\Public\Documents\MVTec\HALCON-12.0\examples\hdevelop复制出来然后操作,避免原来的文件被修改错乱掉了!1.类型HObject ho_Image, ho_EdgeAmplitude;HTuple2.sobel_amp算子Image(input_object) (multichannel-)image(-array) → object (byte / int2 / uint2 / real)Input image.EdgeAmplitude(output_object) (multichannel-)image(-array) → object (int1 / int2 / uint2 / real)Edge amplitude (gradient magnitude) image.FilterType string → (string)Filter type.Default value:'sum_abs'List ofvalues:'sum_abs','sum_abs_binomial','sum_sqrt','sum_sqrt_bi nomial','thin_max_abs','thin_max_abs_binomial','thin_sum_abs','t hin_ sum_abs_binomial','x','x_binomial','y','y_binomial' List of values (for compute devices):'sum_abs','sum_sqrt','x','y','sum_abs_binomial','sum_sqrt _binomial','x_binomial','y_binomial' Size (input_control) integer(-array) → (integer)Size of filter mask.Default value:3List of values:3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 393.WriteImage保存格式List of values: 'bigtiff alpha', 'bigtiff deflate 9 alpha', 'bigtiff deflate 9', 'bigtiff jpeg 90', 'bigtiff lzw alpha ', 'bigtiff lzw', 'bigtiff mask', 'bigtiff packbits', 'bigtiff', 'bmp', 'hobj', 'ima', 'jp2 20', 'jp2 30', 'jp2 40', 'jp2 50', 'jp2', 'jpeg 100', 'jpeg 20', 'jpeg 40', 'jpeg 60', 'jpeg 80', 'jpeg', 'jpegxr20', 'jpegxr 30', 'jpegxr 40', 'jpegxr 50', 'jpegxr', 'png best', 'png fastest', 'png none', 'png', 'tiff alpha', 'tiff deflate 9 alpha', 'tiff deflate 9', 'tiff jpeg 90', 'tiff lzw alpha ', 'tiff lzw', 'tiff mask', 'tiff packbits', 'tiff'HALCON 算子函数——Chapter 4 : File4.1 Images1. read_image功能:读取有不同文件格式的图像。
halcon 创建区域的方法
halcon 创建区域的方法【实用版4篇】目录(篇1)1.Halcon 简介2.创建区域的目的3.创建区域的方法4.注意事项正文(篇1)1.Halcon 简介Halcon 是德国 Halder 公司开发的一款工业自动化软件,主要用于机器视觉和工业自动化控制领域。
Halcon 具有强大的图像处理能力,可实现对图像的快速、精确处理,被广泛应用于生产线自动化检测、质量控制、机器人引导等领域。
2.创建区域的目的在 Halcon 中,创建区域是为了对图像中的特定目标进行处理。
通过创建区域,可以将图像中感兴趣的区域与整个图像进行区分,从而实现对感兴趣区域的快速定位和精确处理。
这对于提高图像处理速度和准确性具有重要意义。
3.创建区域的方法在 Halcon 中,创建区域的方法主要包括以下两种:(1)手动创建区域:通过鼠标在图像上拖动,可以创建一个矩形区域。
创建的区域可以用于进行图像处理,如进行几何测量、灰度值分析等。
(2)自动创建区域:Halcon 提供了自动创建区域的功能,可以通过设定一定的规则,如边缘检测、轮廓提取等,自动识别图像中的目标区域。
4.注意事项在创建区域时,应注意以下几点:(1)区域的大小和位置应根据实际需求进行设定,以保证对图像中感兴趣区域的有效处理。
(2)对于复杂图像,可以尝试使用多种方法创建区域,以提高区域创建的准确性。
(3)在自动创建区域时,应根据实际情况选择合适的规则,以提高区域识别的准确性。
同时,需要注意规则的设置不应过于复杂,以免影响处理速度。
目录(篇2)1.引言2.halcon 的基本概念3.halcon 创建区域的方法4.实例说明5.总结正文(篇2)【引言】在工业自动化领域,halcon 是一种广泛应用的编程语言。
为了更好地利用 halcon 编程语言实现各种功能,我们需要对 halcon 的基本概念有一定的了解,其中包括如何创建区域。
本文将为大家介绍 halcon 创建区域的方法。
工业机器视觉基础教程-halcon篇
工业机器视觉基础教程-halcon篇
工业机器视觉是利用计算机视觉技术,通过各种相机、传感器等设备,实现对工业制造过程中产品的检测、识别、测量等操作,以提高生产效率和质量。
其中,Halcon 是一款商业化的
视觉软件,是基于面向对象编程思想和C++语言构建而成的
算法和应用开发平台。
Halcon 的特点之一是具有强大的图像处理函数库,可用于高
级图像处理和机器视觉应用的开发。
例如,常常用到的图像预处理(如滤波、抠图、滑动窗口等)、角点检测、边缘检测、二值化、形态学操作、直线/圆检测等操作。
此外,还有一些
高级操作,如三维重建、模板匹配、字符识别、色彩分割、基于深度学习的图像识别等。
使用 Halcon 进行机器视觉应用的第一步是了解其标定系统以
及相应的摄像机标定应用。
Halcon 通过利用多个视觉原理,
并结合了强大的2D/3D机器视觉算法和成像技术,能够实现
高精度的相机标定,并能够使用标定好的摄像机进行高效、准确的三维参数计算和分析。
此外,还需要针对具体的应用场景,对图像进行设计、预处理和分析,以得到最终的应用程序。
除此之外,还需要考虑实际工业现场的环境因素,例如光照、噪声、运动等因素对识别、测量的影响。
在这种情况下,可以使用 halcon 系统灵活的参数调整和自动化算法设计等技术,
来实现对产品的全方位分析、检测及检验,提高生产效益和质量。
总之,作为一款行业顶尖的机器视觉软件,Halcon 在应用于各种机器视觉应用方面都有良好的表现,并能帮助工程师快速高效地进行图像处理、算法设计,以及现场调试和优化案例。
halcon的基本数据类型,数据的表示方法
halcon的基本数据类型,数据的表示方法Halcon是一种用于机器视觉应用的编程语言和开发环境。
在Halcon中,有多种基本数据类型可用于存储和表示各种类型的数据。
在这篇文章中,我们将探讨Halcon的基本数据类型以及它们的表示方法。
1.整数类型:Halcon中的整数类型包括有符号整数(INT)和无符号整数(UINT)。
有符号整数的取值范围通常为-2147483648到2147483647,而无符号整数的取值范围为0到4294967295。
整数类型可以用来存储和表示像素坐标、像素灰度值等整数类型的数据。
2.浮点数类型:Halcon中的浮点数类型包括单精度浮点数(FLOAT)和双精度浮点数(DOUBLE)。
单精度浮点数可以表示小数,并具有较高的精度和较大的范围,而双精度浮点数具有更高的精度和更大的范围。
浮点数类型适用于存储和表示测量结果、图像变换矩阵等需要较高精度的数据。
3.字符类型:Halcon中的字符类型(CHAR)用于存储和表示单个字符。
字符类型通常用于存储和处理文本字符、字符串等。
4.布尔类型:Halcon中的布尔类型(BOOL)用于表示真(TRUE)和假(FALSE)的值。
布尔类型适用于存储和判断逻辑条件的结果。
5.枚举类型:Halcon中的枚举类型(ENUM)用于定义一组具有固定取值范围的符号常量。
枚举类型适用于表示具有多个离散取值选项的数据。
6.数组类型:Halcon中的数组类型用于存储和表示多个具有相同数据类型的值的有序集合。
数组可以是一维的、二维的或多维的,并且可以包含不同的数据类型,如整数、浮点数、字符等。
7.字符串类型:Halcon中的字符串类型用于存储和表示一系列字符的有序集合。
字符串类型可以包含文本字符、数字字符和特殊字符,并且可以进行字符串操作和处理。
8.元组类型:Halcon中的元组类型用于存储和表示具有不同数据类型的项的有序集合。
元组可以包含整数、浮点数、字符、数组、字符串等等。
HALCON使用手册简体中文版
第一章HALCON恭喜诸位。
您采用了这套在产品研发,研究以及教育方面都有顶尖表现的影像分析软件。
HALCON 可在UNIX,NT/2000/xp 等等平台下作业,它独特的Library 提供了千余个为影像分析作业,数据可视化,除错等等功能所设计的运算符,用户可以利用它的功能以C 及C++等程序语言自行撰写图像处理程序。
此外,HALCON 亦支持Windows NT/2000/XP 下的COM 接口,所以您也可以透过Visual Basic 使用它,使得系统的整合更为容易。
HALCON 的设计使得影像区域,边缘,以及等值线的处理上更方便,优化的算法让这套软件在一般的硬件上也有很好的指令周期。
HALCON 包含了名为HDevelop 的程序设计界面,减少了设计软件所花的时间,还有一个好用的联机帮助,您可以查到关于HALCON 运算符间功能相近的替代者,可能的变化,以及交互的参考。
HALCON 从6.0 版开始提供两个版本,除了标准版外,还有支持平行运算的parallel HALCON,可使用多CPU 的机器,提高指令周期。
以下是HALCON 特点的说明1.1HALCON 强化的opreator library 提供有效率又有弹性的图像处理功能,简化了影像程序的设计HALCON operator library 有千余个运算符。
所有的HALCON 应用程序(像是HDevelop 和HALCON C++程序)皆是利用这个library 来工作。
这些运算符功能广泛,包含了简单的读取影像,到复杂的像是Kalman 滤波等。
基本上这些运算符各有其单一功能,而非包含了各种运算,因此一个影像分析功能是由好几个运算符组成的,所以其弹性远大于由少数而复杂的运算符组成的分析程序。
特化而复杂的运算符往往只适用于某些工作甚至于影像,应用范围狭窄。
相对于这种窘境,HALCON 运算符却能任意组合来完成工作。
众多的运算符中,有些是以不同的算法来达到相同的功能,例如只需要粗略定位时,可用fast_match 来作最快的运算,需要精确定位时,用best_match,以较多的时间来求得最准确结果。
Halcon编程语法
输入控制参数可以是表达式,但图形参数、输出参数均应为变量;String类型变量由单引号’ 括起来;此外还有一些特殊字符;Boolean型变量包括true ( = 1 )、false ( = 0 ) ;不为零的整数将被认为true;但绝大多数的Halcon函数接受字符串型的表达:’true’ ‘false’,而非逻辑型表达;函数返回常量用于标识错误:Ø H_MSG_TRUE no error 2Ø H_MSG_FALSE logical false 3Ø H_MSG_FAIL operator did not succeed 5可以放在try…catch…endtry块中,也可以用dev_error_var() 与dev_set_check() 来捕获;控制语句结构:(与一般语言略有不同,它们也有输入输出变量)Ø if ... endif / if ... else ... endif / if ... elseif ... else ... endifØ for ... endforØ while ... endwhileØ repeat ... until此外,也有关键字break、continue、return、exit、stop 用来控制语句的执行;赋值语句在Halcon中也被当作函数来使用:标准赋值Ø assign(Expression, ResultVariable) //编辑形式,永远都是输入在前,输出在后Ø ResultVariable := Expression //代码形式元组插入赋值Ø insert(Tuple, NewValue, Index, Tuple) //编辑形式Ø Tuple[Index] := NewValue //代码形式控制变量元组操作Ø [t,t] concatenation of tuplesØ |t| number of elementsØ t selection of an elementØ t[i:j] selection of a part of a tupleØ subset(t1,t2) selection from t1 by indices in t2图形元组操作对应函数Ø [] gen_empty_obj ()Ø |t| count_obj (p, num)Ø [t1,t2] concat_obj (p1, p2, q)Ø t select_obj (p, q, i+1)Ø t[i:j] copy_obj (p, q, i+1, j-i+1)Ø subset(t1,t2) select_obj (p, q, t2+1)元组的数学运算,如:A * B,令m = |A|, n = |B|;若m、n不相等,且都大于1,则错误;否则返回三种情况:Ø m=n=1,返回一个值;Ø m=n>1,返回一个包含m个数的元组,值为两元组各对于值的操作结果;Ø m>1,n=1,返回一个包含m个数的元组,值为第二个数与第一元组各值的操作结果;Halcon 的数学运算算术运算Ø a / a divisionØ a % a rest of the integer divisionØ a * a multiplicationØ v + v addition and concatenation of stringsØ a - a subtractionØ -a negation位运算Ø lsh(i,i) left shiftØ rsh(i,i) right shiftØ i band i bit-wise andØ i bor i bit-wise orØ i bxor i bit-wise xorØ bnot i bit-wise complement字符串操作Ø v$s conversion to string //字符串的格式化,有很丰富的参数Ø v + v concatenation of strings and additionØ strchr(s,s) search character in stringØ strstr(s,s) search substringØ strrchr(s,s) search character in string (reverse)Ø strrstr(s,s) search substring (reverse)Ø strlen(s) length of stringØ s{i} selection of one characterØ s{i:i} selection of substringØ split(s,s) splitting to substrings比较操作符Ø t < t less thanØ t > t greater thanØ t <= t less or equalØ t >= t greater or equalØ t = t equalØ t # t not equal逻辑操作符Ø not l negationØ l and l logical ’and’Ø l or l logical ’or’Ø l xor l logical ’xor’数学函数Ø sin(a) sine of aØ cos(a) cosine of aØ tan(a) tangent of aØ asin(a) arc sine of a in the interval [-p/2, p/ 2], a Î [-1, 1] Ø acos(a) arc cosine a in the interval [-p/2, p/2], a Î [-1, 1] Ø atan(a) arc tangent a in the interval [-p/2, p/2], a Î [-1, 1] Ø atan2(a,b) arc tangent a/b in the interval [-p, p]Ø sinh(a) hyperbolic sine of aØ cosh(a) hyperbolic cosine of aØ tanh(a) hyperbolic tangent of aØ exp(a) exponential functionØ log(a) natural logarithm, a> 0Ø log10(a) decade logarithm, a> 0Ø pow(a1,a2) powerØ ldexp(a1,a2) a1 pow(2,a2)其他操作(统计、随机数、符号函数等)Ø min(t) minimum value of the tupleØ max(t) maximum value of the tupleØ min2(t1,t2) element-wise minimum of two tuplesØ max2(t1,t2) element-wise maximum of two tuplesØ find(t1,t2) indices of all occurrences of t1 within t2Ø rand(i) create random values from 0..1 (number specified by i)Ø sgn(a) element-wise sign of a tupleØ sum(t) sum of all elements or string concatenationØ cumul(t) cumulative histogram of a tupleØ mean(a) mean valueØ deviation(a) standard deviationØ sqrt(a) square root of aØ deg(a) convert radians to degreesØ rad(a) convert degrees to radiansØ real(a) convert integer to realØ int(a) convert a real to integerØ round(a) convert real to integer 四舍五入Ø number(v) convert string to a numberØ is_number(v) test if value is a numberØ abs(a) absolute value of a (integer or real)Ø fabs(a) absolute value of a (always real)Ø ceil(a) smallest integer value not smaller than aØ floor(a) largest integer value not greater than aØ fmod(a1,a2) fractional part of a1/a2, with the same sign as a1Ø sort(t) sorting in increasing orderØ uniq(t) eliminate duplicates of neighboring values (typically used in combination with sort)Ø sort_index(t) return index instead of valuesØ median(t) Median value of a tuple (numbers)Ø select_rank(t,v) Select the element (number) with the given rankØ inverse(t) reverse the order of the valuesØ subset(t1,t2) selection from t1 by indices in t2Ø remove(t1,t2) Remove of values with the given indicesØ environment(s) value of an environment variableØ ord(a) ASCII number of a characterØ chr(a) convert an ASCII number to a characterØ ords(s) ASCII number of a tuple of stringsØ chrt(i) convert a tuple of integers into a string。
halcon手册简体中文版【word版】2p
第一章HALCON恭喜诸位。
您采用了这套在产品研发,研究以及教育方面都有顶尖表现的影像分析软件。
HALCON 可在UNIX,NT/2000/xp 等等平台下作业,它独特的Library 提供了千余个为影像分析作业,数据可视化,除错等等功能所设计的运算符,用户可以利用它的功能以C 及C++等程序语言自行撰写图像处理程序。
此外,HALCON 亦支持Windows NT/2000/XP 下的COM 接口,所以您也可以透过VisualBasic 使用它,使得系统的整合更为容易。
HALCON 的设计使得影像区域,边缘,以及等值线的处理上更方便,优化的算法让这套软件在一般的硬件上也有很好的指令周期。
HALCON 包含了名为HDevelop 的程序设计界面,减少了设计软件所花的时间,还有一个好用的联机帮助,您可以查到关于HALCON 运算符间功能相近的替代者,可能的变化,以及交互的参考。
HALCON 从6.0 版开始提供两个版本,除了标准版外,还有支持平行运算的parallelHALCON,可使用多CPU 的机器,提高指令周期。
以下是HALCON 特点的说明1.1HALCON 强化的opreator library提供有效率又有弹性的图像处理功能,简化了影像程序的设计。
HALCON operator library 有千余个运算符。
所有的HALCON 应用程序(像是HDevelop 和HALCON C++程序)皆是利用这个library 来工作。
这些运算符功能广泛,包含了简单的读取影像,到复杂的像是Kalman 滤波等。
基本上这些运算符各有其单一功能,而非包含了各种运算,因此一个影像分析功能是由好几个运算符组成的,所以其弹性远大于由少数而复杂的运算符组成的分析程序。
特化而复杂的运算符往往只适用于某些工作甚至于影像,应用范围狭窄。
相对于这种窘境,HALCON 运算符却能任意组合来完成工作。
众多的运算符中,有些是以不同的算法来达到相同的功能,例如只需要粗略定位时,可用fast_match 来作最快的运算,需要精确定位时,用best_match,以较多的时间来求得最准确结果。
Halcon中文简体手册
中文手册快速指引目录Introducing HALCON (4)1.1 Key Features (4)1.2 谁应该用HALCON? (5)1.3 您需要的知识 (5)1.4 开始使用HALCON (6)1.5 如何取得更多信息 (6)如何用HALCON 来开发程序 (8)2.1 HALCON 的核心: 组织架构以及数据结构 (9)2.2 HDevelop 快速入门 (12)2.3 在程序语言中使用HALCON (13)2.4 延伸HALCON 功能 (15)2.5 HALCON 的使用极限 (15)各种行业的应用 (16)3.1 电子零件和设备 (16)3.2 食物 (19)3.3 医疗和生命科学 (20)3.4 铁、钢和金属 (23)3.5 机械 (26)3.6 航空摄影测量和遥感 (32)3.7 印刷 (38)3.8 橡胶、合成纤维材料、金属薄片 (39)3.9 半导体 (41)第一章Introducing HALCONHALCON 是当今machine vision技术的代表,它总是以最新科技为基础,提供了现今市场中最强大的vision library。
不论您的工作为何,HALCON都能快速而精确的解决问题。
Vision Development Environment 一个专业的影像处理工具不能只具有影像处理功能。
影像处理只是整个工作的其中一环,还要有其它软件功能,像是过程控制,数据处理,硬件方面还有照明和取像设备,以及其它硬体机构等等。
一个影像处理系统除了要易于使用,还必须能够以富有弹性的方式将上述功能加入开发的流程之中。
为此,HALOCN考虑到各种重要的层面:透过一个交互式的工具HDevelop快速达成软件开发的工作,藉由程序代码的输出,可以轻易的和标准的软件开发工具,例如Micrisoft Visual C++ 整合。
问题导向式文件涵盖了所有层次,包括取得重点信息到进阶的细项讨论。
halcon入门
HALCON初识Halcon是当今machine vision技术的代表,它总是以最新科技为基础,提供了现今市场中最强大的vision library。
除了提供了完整的标准machine vision功能,还有一系列优异的功能,例如,3D相机校正,形状以及原件导向的匹配,次像元精度的物体撷取,计算,利用双像立体量测,任意形状的ROI,以及更多的功能。
用HALCON 来开发程序的流程:1、利用HDevelop检视分析影像,建立计算雏形,最后完成视觉计算方法的发展。
程序可以分成不同的子程序,每个procedures可以只做一件事,像初始化,计算,或是清除。
主程序用于呼叫其它子程序,传递影像或是接收显示结果。
最后,程序输出成我们要用的程序代码,接续下一步工作。
2、完整的程序发展是在程序设计环境中进行,像是Microsoft Visual Studio 。
由HDevelop输出的程序代码,透过指令加入程序中(例如include)。
至于程序的接口等等则是利用程序语言的功能来建构,接下来,compiled and linked,产生应用程序。
自行撰写的程序和HALCON library一起装入机器中出货,或是将程序卖到客户处。
参数和数据结构:HALCON 有两种基本的数据型态: 图像数据(iconic,例如影像)以及控制数据( control,例如变量,整数,字符串,handle等等)。
所有运算子的参数都是以相同的方式排列:输入图像,输出图像,输入控制,输出控制。
当然,并非所有的运算子都具有上列四类参数,不过参数排列的次序依旧相同。
ROI:影像中要处理的数据范围。
region即是一堆像元的集合。
region中的像元不一定要相连,如果要让相连接的像元成为一个region,只要呼叫运算子 connection 即可。
XLD包含了所有等值线以及多边型的数据。
XLD对象中除了点坐标数据,还包含了全域或区域属性,例如edge 方向,或是分割时的regression参数等等。
halcon知识点
1. 无论读入什么图像,读入图像显示效果明显和原始图像不一致,哪怕是从相机读入的图像,也是明显颜色差异。
什么原因引起?初步诊断是,显示的时候调用的颜色查找表存在异常不是default ,而是其它选项。
此时可以通过查阅相关参数,调用set_system解决,也可以在编辑-》参数选择-》颜色查找表进行更改。
2. 裁剪图像;从图像上截取某段图像进行保存。
如何实现该操作?首先应该知道,region不具有单独构成图像的要素,他没有灰度值。
有用过opencv的应该知道ROI(感兴趣区域),设置好它后,对图像的大部分操作就转为图像的一个矩形区域内进行。
类似的,halcon有domain 概念。
首先设置好一个矩形区,然后使用reduce_domain (是一个矩形区域)后,再使用crop_domain 就裁剪出图像。
3. 读入bmp,或tiff 图像显示该图不是bmp文件或不能读。
原因是什么?这个常有新手询问,画图,图像管理器都能打开,又或者是相机采集完直接存到硬盘。
Halcon 读取图像在windows下面到最后是调用windows库函数实现读图功能。
咱不清楚到底是怎么调用的。
对于图像格式,在读图函数F1说明很细。
基本bmp 如果文件头不是bw还是bm(百度百科bmp格式查找,编写此处时无网络,后续可能忘记),就读不进来。
其他规格欢迎补充。
解决办法,如果是相机采集,就在内存直接转换(参见halcon到VC.pdf 里面的halcon和bitmap互转);如果是采完的图片,大部分通过画图工具转换为24位bmp格式,即可解决。
4.读入avi文件报错。
Halcon 通过directshow或另一个格式解析视频,正常来说应该可以读入市面大部分视频,实际测试发现只能读入最标准的avi文件格式。
如果需要临时处理,需要下格式工厂等工具转化为最标准的avi文件格式(论坛叶诺有发帖说明)。
5. Region 或xld 筛选。
Halcon提供了丰富的region 和xld筛选方法。
Halcon编程方法
◆ 类的调用示例
HImage original_image (“monkey”); // “monkey”图片路径 HImage smoothed_image = original_image.MeanImage(11, 11);
老版本代码Halcon 11兼容
版本 头文件路径 Halcon 11代码 $(HALCONROOT)\include, $(HALCONROOT)\include\ halconcpp halconcpp.lib $(HALCONROOT)\lib\$(H ALCONARCH) Halcon 10及以前版本代码 $(HALCONROOT)\include, $(HALCONROOT)\include\ cpp halconcpp10.lib $(HALCONROOT)\lib\$(H ALCONARCH)
MFC工程设置
3. 工程设置菜单 Link 菜单 Getegory 选 择Input,在 Object/library modules 中加入 halconcpp.lib, 在Additional library path中加入
$(HALCONROOT)/lib/$(HAL CONARCH)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HALCON编程基础与工程应用
1. HDevelop预览
5.打开一个例程 HALCON提供了大量基于应用 的示例程序,下面打开一个 HALCON自带例程,简单了解 一下HALCON程序的结构。 从菜单栏>文件>浏览程序>打开 一个例程,比如打开ball.hdev, 如图2-5,2-6所示。点击工具栏“ 运行”工具图标,运行程序,结 果如图2-7所示。
图2-8 算子窗口
HALCON编程基础与工程应用Leabharlann 2. HDevelop窗口介绍
图2-9 算子查询
2.HDevelop程序窗口 程序窗口是用来显示一个HDevelop程序。它可以显示整个程
序或是某个运算符。窗口左侧是一些控制程序执行的指示符号 。HDevelop刚启动时,可以看到一个绿色箭头的程序计数器( program counter,简称 PC),一个插入符号,还可以设一个 断点(breaking point),窗口右侧显示程序代码,如图2-10所 示。
HALCON编程基础与工程应用
2.1 HDevelop应用界面介绍
HDevelop图形组件是开始视觉处理算法的一个很好的工具,其类似 于VC、VB、Delphi等编译环境,它有自己的交互式界面,可以编译和 测试视觉处理算法,可以方便查看处理结果,也可以导出算法代码。
HALCON编程基础与工程应用
HALCON编程基础与工程应用
2. HDevelop窗口介绍
在程序编辑窗口点击右键,在下拉菜单显示程 序运行调试中的一些设置,如图2-11所示。
图2-10 程序窗口
HALCON编程基础与工程应用
图2-11 程序调试设置
2. HDevelop窗口介绍
HDevelop启动以后,就可以开始从程序窗口输入,逐步建立一个 HDevelop 程序。要在程序中新增一行,比如加一个算子,有以下两 个步骤。 (1)首先要将光标放在新增的地方,用键盘的Shift键加上的鼠标左 键,点在要加入的地方,然后从算子菜单中选择,或是由算子窗口 来选用想要加入的数据。 (2)新的算子会出现在算子窗口中,包含它的参数等数据,此时按 下“输入”,就会将它加入程序代码中,成为新增的一行;如果按下“ 确定”,除了程序代码会新增以外,同时也会执行程序。如果按的是 “应用”,算子不会新增到程序中,但是会被执行,这样就可以方便 又有效的测试修改参数的结果。 如果只要执行某一行,可以将程序计数器(PC)置于要执行的那行 前,再用鼠标左键在该行前单击,然后按HDevelop工具栏的“单步跳 过函数”,如果单击“运行”,则程序代码都会执行,直到一个断点或 是按“停止”将其中止。
图 2-1 HALCON主界面
HALCON编程基础与工程应用
1. HDevelop预览
2.菜单栏 菜单栏包含所有HDevelop的功能命令,单击打开后有下拉菜单, 如图2-2所示。
图2-2 菜单栏
3.工具栏 工具栏包含了一系列常用功能的快捷方式,如图2-3所示。
图2-3 工具栏
4.状态栏 状态栏显示程序的执行情况,如图2-4所示。。
HALCON编程基础与工程应用
图2-5 浏览例程
1. HDevelop预览
图2-6 打开例程
HALCON编程基础与工程应用
图2-7 例程运行结果
2. HDevelop窗口介绍
1.HDevelop算子窗口 算子窗口显示的是算子的重要数据,包含了所有的参数,各个变量 的型态,以及参数数值,如图2-8所示。这里会显示参数的默认值 ,以及可以选用的数值。每一个算子都有联机帮助。另一个常用的 是算子名称的查询显示功能,在一个combo box里,只要键入部分 字符串甚至开头的字母,即可显示所有符合名称的算子供选用,如 图2-9所示。
HALCON编程基础与工程应用
2. HDevelop窗口介绍
3. HDevelop变量窗口 变量窗口显示了程序在执行时产生的各种变量,包括图像变量和控 制变量,如图2-12所示。在变量上用鼠标双击,即可显示变量值,如 图2-13所示。如果变量值是图像变量,鼠标双击,会显示在图形窗口 里。
图2-12 变量窗口
HALCON编程基础与工程应用
图2-13 变量值
2. HDevelop窗口介绍
4.HDevelop图形窗口 图形窗口用来显示图像化变量数据,如图2-14所示。 (1)图形窗口可视化 图形窗口可视化的方式可以依据需要来调 整,相关功能位于“可视化”菜单下,如图 2-15所示。可以开启数个图形窗口,并且 自行选用要用的窗口。
1. HDevelop预览
HALCON安装完成后,点击图标运行HALCON软件,下面介绍其 主要的界面。 1.主界面 整个界面分为标题栏、菜单栏、工具栏、状态栏和四个活动界面窗 口,四个活动界面窗口分别是图像变量窗口、算子窗口、变量窗口 和程序窗口,如图2-1所示。如果窗口排列不整齐,可以选择菜单 栏>窗口>排列窗口,重新排列窗口。
(3)HDevelop灰度 直方图 从菜单栏>可视化菜 单>灰度直方图,打 开灰度直方图功能窗 口,进行设置,如图 2-17所示。
HALCON编程基础与工程应用
图2-17 灰度直方图
2. HDevelop窗口介绍
(4)HDevelop特征 直方图 从菜单栏>可视化菜 单>特征直方图,打 开特征直方图功能窗 口,进行设置和编辑 ,并可根据编辑的直 观结果,插入程序代 码。如图2-18所示。
图2-14 图形窗口
HALCON编程基础与工程应用
图2-15 可视化菜单
2. HDevelop窗口介绍
(2)图形窗口的3D模式 点击图2-14图形窗口右上角“3D点图模式”,可以将图形窗口变为 3D模式,如图2-16所示。
图2-16 图形窗口的3D模式
HALCON编程基础与工程应用
2. HDevelop窗口介绍
第2章 HALCON编程基础
HALCON软件的编程环境Hdevelop是交互式的,它的操作窗口和 编程界面简洁、易操作。本章主要介绍Hdevelop的使用,并介绍 HALCON的控制语句,以及编程环境下图像的读取、显示和转换。
HALCON编程基础与工程应用
第2章 HALCON编程基础
◆ 2.1HDevelop应用界面介绍 ◆ 2.2HALCON控制语句 ◆ 2.3 HALCON算子 ◆ 2.4HALCON图像读取、显示和转换Blob分析