halcon知识点
halcon算子较全的中文手册
1. Halcon算子概述Halcon是一种强大的机器视觉软件,它由MVTec开发,可用于各种工业和非工业应用。
在Halcon中,算子是至关重要的组成部分,它们可以实现图像处理中的各种功能,如滤波、边缘检测、特征提取等。
本文将以算子作为主题,深入探讨Halcon算子的各种特性和用法。
2. Halcon算子的分类Halcon算子可以分为预处理算子、过滤算子、分割算子、匹配算子、测量算子等多个类别。
每个类别都包含了众多的算子,它们可以根据图像处理任务的不同需求进行灵活组合和调用。
3. Halcon算子的特性Halcon算子具有许多独特的特性,如多样的输入输出形式、灵活的参数设置、高效的运算速度等。
这些特性使得Halcon算子在图像处理领域得到广泛应用,并受到了众多工程师和科研人员的喜爱。
4. Halcon算子的使用技巧在使用Halcon算子时,熟练掌握一些技巧和经验是非常重要的。
合理设置算子的参数、选择适当的算法、理解算子的内部原理等,都可以帮助我们更好地使用Halcon算子,提高图像处理的效率和准确性。
通过一些典型的应用案例,我们可以深入了解Halcon算子的实际应用。
这些案例涵盖了工业质检、医疗影像、无人驾驶、智能制造等多个领域,展示了Halcon算子的强大功能和广泛适用性。
6. 我对Halcon算子的个人理解作为一名Halcon用户,我对Halcon算子有着深刻的认识和体会。
我认为Halcon算子不仅仅是图像处理的工具,更是一种思维方式和解决问题的哲学。
通过深入学习和使用Halcon算子,我对图像处理和机器视觉有了全新的认识和理解。
总结与回顾通过本文的全面介绍和深度探讨,我们对Halcon算子有了更加全面和深入的了解。
从算子的分类到使用技巧,再到实际案例分析,我们逐步领略了Halcon算子的强大功能和潜力。
我相信,在今后的工作和研究中,我们可以更好地运用Halcon算子,为图像处理和机器视觉领域的发展做出更大的贡献。
HALCON学习笔记
4、Halcon 数据结构 两类参数:图形参数 Iconic (image, region, XLD) 与 控制参数 Control (string, integer, real, handle),在 Halcon 算子的参数中,依次为:输入图形参数、输出图形参数、输入控制参数、 输出控制参数;并且其输入参数不会被算子改变。 图形参数 Iconic: Images Multiple channels Arbitrary region of interest Multiple pixel types (byte, (u)int1/2/4, real, complex, direction, cyclic, vector_field) byte, uint2 int1, int2 int4 direction real complex cyclic vector_field //灰度图像的标准编码 //Difference of two images or derivates with integer precision (??) //两幅灰度图的频谱 //图片边缘的梯度方向 //边缘提取及特定灰度值的轮廓 //图片频率分布 //Assigning one "gray" value to each color(??) //连续图形的光学流分布
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[i] 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[i] 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) rsh(i,i) i band i i bor i i bxor i bnot i left shift right shift bit-wise and bit-wise or bit-wise xor bit-wise complement
halcon笔记
1、What Basic Knowledge Do You Need for 3D Vision(chapter 2 and chapter 3 ) (1)camera calibration (相机标定) Using a camera calibration, you can transform image processing results into arbitrary 3D coordinatesystems and thus derive metrical information from images, regardless of the position and orientation ofthe camera with respect to the object (2)chapter 2 on page 15 introduces you to the details on the camera model and parameters. (3) chapter 3 shows how to apply a general 3D vision task with a singlecamera in a specified plane.
• 2.2 Camera Model and Parameters//相机 模型与参数 • halcon支持两种相机:area scan cameras (区域扫描相机) 和 line scancameras (线扫描相机) • 与机器视觉相关的两种镜头: • pinhole camera model (小孔成像摄像机 模型)和 telecentriccamera model(远心 摄像机模型)
5、How Can You Extend 3D Vision to Robot Vision?//如何将3D视觉转换为机器视觉
halcon学习笔记
halcon学习笔记1、HsmartWindow 报错问题2、HwindowCtronl绘制图形未结束⼜点击绘制导致错误3、论坛转贴常见问题4、找圆找线部分参数设置5、实现基于形状的模板匹配6、⼀维测量-卡尺7、直线/圆拟合---------------------------------------------------------------- 1-- HsmartWindow 控件除了会调⽤halcondonet.dll外还会调⽤halcon.dll,如果程序根⽬录不存在halcon.dll,则会通过全局变量找到halcon mevtec⽬录去调⽤,这样是没有问题的;如果根⽬录下存在halcon.dll,则会优先调⽤根⽬录下的⽂件,然后halcon.dll内部如果使⽤到HsmartWindow的功能,则还会调⽤⼀个Hcanvas.dll的⽂件,如果根⽬录下没有这个⽂件则会报错,程序编译后启动过程中报错,报错内容为:----------------------------------------------------------------------------------2- HsmartWindow不⽀持Draw开头的函数,只能在Hwindow上⾯画,在执⾏Draw函数的时候,程序停在该函数位置,未点击⿏标右键确认Draw Region之前,程序会⼀直停留,此时再执⾏其他的Draw函数,就会导致在整个流程乱掉,避免这种情况的⽅法是在每个Draw函数之前都调⽤⼀次HalconApi.CancelDraw()函数,结束上次未完成的绘制。
--------------------------------------------------------------------3--以下引⽤ihalcon学习⽹上帖⼦《转“Halcon基本问题解答”》----------------------------------------------------------2. 裁剪图像;从图像上截取某段图像进⾏保存。
halcon学习笔记
H A LC ON笔记t h re sh ol d 按设置的阙值提取图像区域。
c o nn ec ti on合并所有选定像素触摸相互连通区。
Selec t_shape选择区域面积(属性:'面积')在指定区间内。
S m al le st_r ec ta ng le1计算每个区域的坐标(连续/栏)的包围矩形。
dilation_circle ( Region ,RegionDilation , Radius ) 膨胀Radius为半径complement ( Region , RegionComplement )反填充Region区域get_mbutton ( WindowHandle, &Row, &Column, &Button ) 等待至用户鼠标有输入,Row,和Column返回坐标,左键输入:Button=1;中键:Button=2;右键:Button=4set_tposittion(windowhandle,Row,Column)设置文本输出坐标mean_image ( Image : ImageMean : MaskWidth, MaskHeight : )取平均值平滑图像MaskWidth &MaskHeight ∈ {3, 5, 7, 9, 11, 15, 23, 31, 43, 61, 101}select_region_point (ConnectRegion, OneObject, Row, Column)在连同区ConnectRegion中用坐标选中区域gauss_image ( Image : ImageGauss : Size : )高斯模糊图像,size:3,5,7,9,11sub_image ( ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : ) ImageSub=(ImageMinuend-ImageSubtrahend)*Mult+Add,增强两幅图像的差异elliptic_axis ( Regions : : : Ra, Rb, Phi ),计算Region区域中的椭圆参数decompose3 ( MultiChannelImage : Image1, Image2, Image3 : : )三通道图像转换为三个图像trans_from_rgb ( ImageRed, ImageGreen, ImageBlue :ImageResult1,ImageResult2, ImageResult3 : ColorSpace : )从一个rgb图像转换为一个任意格式图像difference ( Region, Sub : RegionDifference )计算两个区域的不同,并返回dev_update_pc ( DisplayMode) 设置程序是否总在前面,对置顶有作用(不支持C++代码) dev_update_window(DisplayMode) 默认状态下所有的对象(图像,区域,或XLD)都在活动图形窗口显示。
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知识点总结
halcon知识点总结Halcon基本概念Halcon的全称是HALCON(Highly Optimized Computer Vision Algorithms), 是由MVTec Software GmbH公司开发的一款强大的视觉处理软件,为工业自动化领域提供了全面的解决方案。
这种软件广泛应用于制造业、半导体行业、电子产业、医药行业等领域,用于机器视觉系统的开发和部署。
Halcon具有以下几个基本概念:1. 图像处理Halcon是一种用于图像处理的软件,它提供了一系列的图像处理算法和工具,可以对图像进行预处理、分割、特征提取、匹配等操作,以满足各种不同的应用需求。
2. 机器视觉Halcon可以应用于机器视觉系统中,用于进行产品质量检测、物体识别和追踪、三维测量等操作,以提高生产效率和产品质量。
3. 算法优化Halcon提供了高度优化的图像处理算法,可以实现高性能和高效率的图像处理,适用于高速和复杂的生产环境。
特性Halcon具有以下一些重要的特性:1. 高性能Halcon使用了一系列高效的图像处理算法和数据结构,以实现高速的图像处理能力,能够满足各种不同的应用需求。
2. 多功能Halcon提供了丰富的图像处理和分析功能,可以用于多种不同的应用场景,如工业自动化、医疗影像、安防监控等。
3. 跨平台Halcon可以在多种不同的操作系统上运行,并且支持多种不同的开发语言和工具,可以轻松集成到现有的系统之中。
应用Halcon在多个领域都有广泛的应用,以下是一些典型的应用场景:1. 工业自动化在工业自动化领域,Halcon可以用于进行产品质量检测、零件识别和追踪、三维测量等操作,以提高生产效率和产品质量。
2. 医疗影像在医疗领域,Halcon可以用于进行医学影像处理和分析,如医学图像的识别、分割、量化分析等,以辅助医生进行诊断和治疗。
3. 安防监控在安防监控领域,Halcon可以用于进行行人识别、车辆识别、人脸识别等操作,以提高监控系统的识别能力和准确度。
Halcon十九类算子汇总
Halcon十九类算子汇总halcon算子一classification1.1gaussian-mixture-models1.add_sample_class_gmm把一个训练样本嵌入至一个高斯混合模型的训练数据上。
2.classify_class_gmm通过一个高斯混合模型来计算一个特征向量的类。
3.clear_all_class_gmm去除所有高斯混合模型。
4.clear_class_gmm清除一个高斯混合模型。
5.clear_samples_class_gmm去除一个高斯混合模型的训练数据。
6.create_class_gmm为分类创建一个高斯混合模型。
7.evaluate_class_gmm通过一个高斯混合模型评价一个特征向量。
8.get_params_class_gmm返回一个高斯混合模型的参数。
9.get_prep_info_class_gmm排序一个高斯混合模型的预处理特征向量的信息内容。
10.get_sample_class_gmm从一个高斯混合模型的训练数据返回训练样本。
11.get_sample_num_class_gmm回到存储在一个高斯混合模型的训练数据中的训练样本的数量。
12.read_class_gmm从一个文件中读取一个高斯混合模型。
13.read_samples_class_gmm从一个文件中加载一个高斯混合模型的训练数据。
14.train_class_gmm训练一个高斯混合模型。
15.write_class_gmm向文件中载入一个高斯混合模型。
16.write_samples_class_gmm向文件中写入一个高斯混合模型的训练数据。
1.2hyperboxes1.clear_sampset释放一个数据集的内存。
2.close_all_class_box去除所有分类器。
3.close_class_box清除分类器。
4.create_class_box建立一个代莱分类器。
halcon入门教程
halcon入门教程Halcon(哈康)是一款由美国密歇根州慕尼黑市的MVTec软件公司开发的机器视觉开发平台。
它提供了丰富的图像处理和分析函数,可以用于工业自动化、机器人视觉、医学图像处理等各个领域。
Halcon的入门教程首先要了解其基本概念和术语。
以下是一些常用术语的简要介绍:1. 图像:在Halcon中,图像指的是一个或多个矩阵组成的数据对象。
每个矩阵表示图像中的像素值,可以是灰度图像或彩色图像。
2. 灰度图像:灰度图像是指每个像素只有一个灰度值的图像。
在Halcon中,灰度图像通常用单通道矩阵表示。
3. 彩色图像:彩色图像是指每个像素有多个颜色分量的图像。
在Halcon中,彩色图像通常用多通道矩阵表示,每个通道表示一个颜色分量。
4. 模板匹配:模板匹配是一种在输入图像中寻找与模板图像最相似区域的方法。
Halcon提供了多种模板匹配算法,可以根据需要选择合适的算法。
5. 区域:在Halcon中,区域是指图像中的一个连续像素集合。
可以通过二值化、分割等方法得到区域。
除了上述基本概念外,入门教程还应包括以下内容:1. 安装与配置:介绍如何下载、安装和配置Halcon开发环境。
2. 图像加载与显示:介绍如何加载和显示图像,以及常用的图像显示函数。
3. 图像处理:介绍Halcon提供的常用图像处理函数,例如平滑、增强、边缘检测等。
4. 区域处理:介绍Halcon提供的区域处理函数,例如区域拟合、区域合并、形态学操作等。
5. 模板匹配:介绍Halcon提供的模板匹配函数,例如统计形状模板匹配、模板匹配算法比较等。
6. 应用实例:通过实际案例展示如何使用Halcon解决实际问题,例如物体检测、识别和测量等。
通过学习上述内容,可以初步掌握Halcon的基本功能和使用方法,为进一步深入学习和应用奠定基础。
Halcon学习资料整理
模板匹配1. Shape-Based matching的基本流程HALCON提供的基于形状匹配的算法主要是针对感兴趣的小区域来建立模板,对整个图像建立模板也可以,但这样除非是对象在整个图像中所占比例很大,比如像视频会议中人体上半身这样的图像,我在后面的视频对象跟踪实验中就是针对整个图像的,这往往也是要牺牲匹配速度的,这个后面再讲。
基本流程是这样的,如下所示:⑴首先确定出ROI的矩形区域,这里只需要确定矩形的左上点和右下点的坐标即可,gen_rectangle1()这个函数就会帮助你生成一个矩形,利用area_center()找到这个矩形的中心;⑵然后需要从图像中获取这个矩形区域的图像,reduce_domain()会得到这个ROI;这之后就可以对这个矩形建立模板,而在建立模板之前,可以先对这个区域进行一些处理,方便以后的建模,比如阈值分割,数学形态学的一些处理等等;⑶接下来就可以利用create_shape_model()来创建模板了,这个函数有许多参数,其中金字塔的级数由Numlevels指定,值越大则找到物体的时间越少,AngleStart和AngleExtent决定可能的旋转范围,AngleStep指定角度范围搜索的步长;这里需要提醒的是,在任何情况下,模板应适合主内存,搜索时间会缩短。
对特别大的模板,用Optimization来减少模板点的数量是很有用的;MinConstrast将模板从图像的噪声中分离出来,如果灰度值的波动范围是10,则MinConstrast应当设为10;Metric参数决定模板识别的条件,如果设为’use_polarity’,则图像中的物体和模板必须有相同的对比度;创建好模板后,这时还需要监视模板,用inspect_shape_model()来完成,它检查参数的适用性,还能帮助找到合适的参数;另外,还需要获得这个模板的轮廓,用于后面的匹配,get_shape_model_contours()则会很容易的帮我们找到模板的轮廓;⑷创建好模板后,就可以打开另一幅图像,来进行模板匹配了。
halcon学习经验
HalCon学习经验总结1.图像的开运算和闭运算算子开运算就是用消除图像上的小物体,小区域,将纤细相连的物体分开,将大物体的表面平滑与此同时不明显改变他的面积。
扩大背景(就是暗的部分),缩小前景(就是亮的部分)。
模板匹配等闭运算就是填充物体内细小的空洞,连接邻近的物体,平滑物体的边界同时呢不明显改变他的面积。
缩小背景(就是暗的部分),扩大前景(就是亮的部分)开运算:先对图像腐蚀然后膨胀闭运算:先对图像膨胀然后腐蚀必要的解释:一:HALCON提供了开运算、闭运算的函数(算子),根据结构元素的不同(圆的方的椭圆的或是自己定义也可以)细化出很多算子。
这些都是细枝末节。
此处不再赘余。
二:开闭运算的结构元素没有参考点(中心点)的概念。
三:开闭运算没有迭代的概念,就是图像被同样结构元素做开运算,处理一次和处理随意非零次的效果是一样的。
gray_opening_rect (ImageInvert, ImageOpening, 20, 20)gray_closing_rect (ImageInvert, ImageClosing, 20, 20)connection (ImageOpening,tophat)connection (ImageClosing,bothat)sub_image (bothat,tophat,ImageSub, 1, 0)union1 (ImageSub, RegionUnion)2.击中击不中(hit_or_miss),加厚(thickening),打薄(thinning)thickening:原始图像+ 对图像使用击中击不中产品的图像thinning:原始图像- 对图像使用击中击不中产品的图像击中击不中原理继膨胀、腐蚀、开运算和闭运算之后的有一个基本操作就是击中击不中变换(HMT),HMT变换可以同时探测图像的内部和外部。
在研究图像中的目标物体与图像背景之间的关系上,HMT能够取得很好的效果。
工业机器视觉基础教程-halcon篇
工业机器视觉基础教程-halcon篇
工业机器视觉是一种高科技领域,它涉及计算机视觉、图像处理、控制系统和机器学习等技术。
Halcon是一种常用的工业机器视觉开发
平台,下面将介绍Halcon的部分基础知识。
一、Halcon的安装与授权
Halcon的安装需要官网下载安装包,安装时需要注意选择合适的版本
和安装路径。
安装完成后,需要通过授权码进行激活,激活后才能使
用Halcon的所有功能。
授权码需要向官方购买,每个授权码只能对应
一台计算机。
二、Halcon的图像处理
Halcon的图像处理功能非常强大,包括图像采集、预处理、分割、特
征提取以及形状匹配等。
其中,形状匹配是Halcon的一大特色,可以
用于目标检测、物体定位等任务。
三、Halcon的编程语言
Halcon支持多种编程语言,如C++、C#、Python等。
其中,Halcon自
带的HDevelop是一种可视化编程语言,可以直接拖拽图像处理算法进
行组合和调试。
四、Halcon的应用领域
Halcon广泛应用于工业自动化、机器人视觉、医学影像等领域,例如
视觉检测、质量控制、零件识别等方面。
由于其卓越的性能和稳定性,Halcon已经成为了工业机器视觉领域的首选开发平台之一。
五、Halcon的学习和发展
学习Halcon需要掌握图像处理的基础知识和编程技巧,同时需要不断
学习和了解新的机器视觉技术,不断提高自己的技术水平。
在发展方面,Halcon正在向更加智能、高效、易用的方向发展,为工业机器视
觉领域的发展尽一份力。
halcon知识点总结
Halcon知识点总结Halcon是一种强大的机器视觉编程软件,广泛应用于图像处理和机器视觉领域。
它提供了丰富的算法库和工具,使开发人员能够开发出高效、精确的视觉应用程序。
在本文中,我将总结一些Halcon的关键知识点。
1.Halcon基础知识 Halcon是一种面向对象的编程语言,具有强大的图像处理能力。
它支持多种图像格式,并提供了丰富的图像处理函数和算法。
要使用Halcon,首先需要了解其基本语法和函数的使用方法。
2.图像输入与输出在Halcon中,图像可以从文件中读取或通过相机进行采集。
要从文件中读取图像,可以使用read_image函数,该函数接受图像文件的路径作为参数。
要将图像保存到文件中,可以使用write_image函数,并指定保存路径和文件格式。
3.图像预处理在进行图像处理之前,通常需要对图像进行预处理,以提高处理的效果。
Halcon提供了丰富的图像预处理函数,包括图像平滑、增强、滤波等。
常用的预处理函数包括gauss_filter、median_image和enhance等。
4.图像分割与特征提取图像分割是图像处理中的一项重要任务,它将图像分割成具有不同特征的区域。
Halcon提供了多种图像分割算法,例如阈值分割、边缘检测和区域生长等。
完成图像分割后,可以使用特征提取函数获取每个区域的特征,如区域的形状、大小和颜色等。
5.目标定位与匹配目标定位是在图像中找到感兴趣的目标位置。
Halcon提供了多种目标定位算法,包括模板匹配、形状匹配和关键点匹配等。
通过设定合适的模板或特征描述子,可以在图像中准确地定位目标位置。
6.二维码和条形码识别在许多应用中,需要对二维码和条形码进行自动识别。
Halcon提供了方便的函数和工具,用于解码和识别不同类型的二维码和条形码。
通过使用相应的函数,可以实现快速而准确的二维码和条形码识别。
7.三维视觉与立体匹配除了二维视觉外,Halcon还提供了强大的三维视觉功能。
机器视觉之halcon学习——机器视觉工程应用的开发思路
halcon学习笔记——机器视觉工程应用的开发思路机器视觉工程应用主要可划分为硬件和软件两大部分。
硬件:工程应用的第一步就是硬件选型。
硬件选型很关键,因为它是你后面工作的基础。
主要是光源、工业相机和镜头选择。
软件:目前业内商业库主要有Halcon,康耐视,DALSA,evision,NI等,开源库有Ope nCV.其中NI的labview+vision模块。
机器视觉工程应用的基本开发思路是:一、图像采集,二、图像分割,三、形态学处理,四、特征提取,五、输出结果。
下面在Halcon下对这四个步骤进行讲解。
一、图像采集:Halcon通过imageacquisition interfaces对各种图像采集卡及各种工业相机进行支持。
其中包括:模拟视频信号,数字视频信号Camera Link,数字视频信号IEEE 1394,数字视频信号USB2.0,数字视频信号Gigabit Ethernet等。
Halcon通过统一的接口封装上述不同相机的image acquisition interfaces,从而达到算子统一化。
不同的相机只需更改几个参数就可变更使用。
Halcon图像获取的思路:1、打开设备,获得该设备的句柄。
2、调用采集算子,获取图像。
1、打开设备,获得该设备的句柄。
2、调用采集算子,获取图像。
图像采集其他相关算子:grab_image_start,该算子开始命令相机进行异步采集。
只能与grab_image_async (异步采集)一起使用。
例子:3、相机参数读写读取相机参数:info_framegrabber( : : Name, Query : Information, ValueList)写相机参数:set_framegrabber_param( : : AcqHandle, Param, Value : )二、图像分割:图像分割的定义:所谓图像分割是指将图像中具有特殊含义的不同区域分割开来,这些区域是互相不交叉的,每个区域都满足特定区域的一致性。
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 数学运算
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视觉⼊门扫盲篇halcon视觉⼊门扫盲篇前⾔ 在公司让我研究视觉的时候,我是两眼⼀抹⿊的。
之前完全没有接触过视觉。
综合权衡后选择了Halcon,使⽤的是HDevelop 13 (64-bit)。
下载地址 破解有点⿇烦,我使⽤的是⽂件替换破解。
⼀个exe⽂件⼀个dll⽂件,替换即可。
假设以上环境搭建没有问题,现在开始了解视觉识别的套路基础知识既然是做视觉,就需要图像,不管这个图像是从摄像头读过来的还是从⽂件中读取的。
图⽚有⼀些基础信息,⽐如:通道:⼀张图⽚⼀般有3个通道,也就是R G B 三个通道,R 代表红⾊ G 代表绿⾊ B 代表蓝⾊。
像素:计算机存储每个图⽚有N多个像素点,我们常说某个相机有⼏百万像素,说的就是这个,像素在计算机存储层⾯不可分割,是最⼩粒⼦。
但在视觉算法上是可以的(后⾯再说)。
灰度值:灰度也可以认为是亮度,也是⿊⽩图像中点的颜⾊深度,范围⼀般从0到255,⽩⾊为255 ,⿊⾊为0,故⿊⽩图⽚也称灰度图像。
(如此简单理解即可)Region:区域,根据特征提取出来的⼀些范围。
算⼦:直接理解成⽅法。
知道这些基础知识以后,我们在来理解什么是视觉识别。
也别去看百度百科了,简单的理解就是,通过提取图像中的特征,选取我们需要的区域,从⽽达到⼀定的⽬的。
⽐如,有如下图需要识别每个⽅格中是否有芯⽚。
这是⼀个需求。
根据这个需求,我们来进⾏需求拆解:1. 如何在这张图⾥⾯得到这些⽅格。
2. 如何在每个⽅格中判断芯⽚是否存在。
⼤体思路就是这样了,接下来对图像进⾏分析,得到具体解决问题的思路:如何在这张图⾥⾯得到这些⽅格。
分析图像可以知道:1. ⽅格是⽩⾊的,亮度较⾼。
但⽩⾊的内容不只有⽅格,所以在提取特征的时候,需要注意。
2. ⽅格⽐较规整,都是⽅形,⾯积相似。
3. ⽅格与⽅格相连,所在的区域在整个图像的中⼼位置。
以上就是分析图像得到的信息。
这些信息就是⽅格的特征,我们通过特征进⾏筛选,从⽽得到所有的⽅格。
halcon 坐标定义
halcon 坐标定义摘要:1.Halcon 简介2.Halcon 坐标系统的构成3.Halcon 坐标的定义方法4.Halcon 坐标的应用领域正文:【1.Halcon 简介】Halcon 是一种广泛应用于工业自动化领域的编程语言。
它是由德国的Grafikontor 公司开发的,专为机器视觉和工业自动化应用而设计。
Halcon 支持多种操作系统,包括Windows、Linux 和Mac OS,具有较高的性能和灵活性。
【2.Halcon 坐标系统的构成】Halcon 坐标系统是一个用于描述图像和设备运动的二维或三维坐标系统。
它由一个原点和两个轴(X 轴和Y 轴)组成。
在二维系统中,还有一个Z 轴,用于描述深度或高度。
Halcon 坐标系统可以是笛卡尔坐标系或极坐标系。
【3.Halcon 坐标的定义方法】在Halcon 中,坐标可以通过以下方法定义:- 直接定义:使用Halcon 编程语言中的数据类型和函数直接定义坐标值。
例如,X 坐标为100,Y 坐标为200。
- 计算定义:通过Halcon 编程语言中的运算符和函数计算得到坐标值。
例如,X 坐标为Sx+50,Y 坐标为Sy-100。
- 接口读取:通过连接外部设备(如相机、编码器等)读取坐标值。
例如,从相机的图像中提取物体的坐标信息。
【4.Halcon 坐标的应用领域】Halcon 坐标广泛应用于工业自动化和机器视觉领域,例如:- 机器人控制:使用Halcon 坐标系统,可以精确地控制机器人的移动和定位。
- 机器视觉:通过Halcon 编程语言处理图像数据,可以提取物体的坐标信息,用于检测、识别和定位。
- 设备控制:Halcon 坐标系统可以用于控制和监控生产设备,如机床、输送线等。
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功能:读取有不同文件格式的图像。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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筛选方法。
Region可以使用select_shape_xld,选择出符合要求的区域,如果不能满足还可以通过类似 region feature 这样关键字组合成的算子获取区域特征,然后通过 tuple 排序或相加减,再通过 tuple_find 确定是对应哪个区域的特征。
同样的halcon也提供了 select_contours_xld 进行轮廓筛选。
6. Halcon分几类对象,每个类的功用是?Halcon总分俩大类,tuple和图标对象obj 。
Tuple涵盖了对所有基础数据类型的封装,可以理解为她是halcon定义的数组类。
Obj 是alcon定义图标类基类。
衍生出了许多类型,其中 Region ,Xld,Image 其中最主要的类型。
7. F1说明,参数部分 -array 是什么意思?该符号说明,该参数接受一组输入,对tuple就是一组tuple,对obj 就是通过concat_obj 或其它操作产生的一组obj元组。
8. 俩个相对方形物体的距离计算。
如果这俩个物体和背景对比清晰,最近的距离在俩条边下则可以再预处理之后进行如下操作:1. Segement_contours_xld 分割边缘线段(edgeXXXX等得到的边缘);2. select_contours_xld 选择出特定的长度或方向边缘;3. 假设此时刚好获取俩条线,则可以利用 distance_ll ,求得距离,也可以自己fit_lineXXXX 拟合直线再求距离;以上是一种方法,另一种常见方法是利用 measure_pos 或measure_pair 进行测量,不熟悉的可以翻看示例或者使用测量助手进行测量。
9. 创建过程或函数,或者全文编辑。
在算子编辑窗口,main所在行右边,有四个按钮,将鼠标移到该位置,将有中文提示,按提示点击按钮。
10. 从其它halcon环境窗口复制函数或算子复制到新建的halcon窗口,无法使用,提示不识别。
除了敲错,此种情况都是由于该函数式本地或全局函数,而不是halcon算子。
确定的方法:注意该算子颜色然后去编辑参数选择查看该颜色代表的算子属于什么类型函数。
亦可以直接右键,如果有查看函数。
为黑色可点击,这种情况也是本地或全局函数。
解决方法:如果是全局函数,可以在halcon目录下面找到该函数,加载到新窗口就行;也可以新建输入输出一致的过程,将代码复制过来,然后使用。
本地函数只能使用后一种方法解决。
11. 64位系统,VS2010及以下版本报 error LNK1112:模块计算机类型”X86” 与目标计算机类型”X64” 冲突。
问题原因是默认情况,halcon在64位系统会自动安装64位halcondll,并且添加到环境变量;而vs一般是默认X86编译环境,俩者dll库不一致,换句话说是底层机器指令不一致。
解决办法是将编译环境设置为64位,详见百度;或者再次安装halcon选择32位dll,并修改环境变量 VC++路径为32位库路径,bin 指向32位dll 路径。
12. 64位系统,VS2012 。
无论怎么更改库文件,头文件,名空间,最好的提示也是找不到函数定义。
反复出现,无法解决时,有可能是问题11所述问题,解决办法见11.至于为何不提示error LNK1112,可能是VS更改了前面检测等级,在编译阶段就拦截到错误。
应该说是更先进了,只是比较不合情理。
13. 如何查找halcon算子?Halcon算子命名大部分所见即所得,也就是如果你记得你要找的算子汉字名称,输入到翻译器得到英文单词,在F1 的算子分栏从头开始输大部分能找到一些算子,这时候再点击进去注意算子功能解释,懂了是自己要的就拿起来到例程搜索示例,查阅功能;不懂就看说明部分;再不懂进群问。
另外,对于近半算子是按动作_类型/目标_属性命名。
Obj 是 region,xld,image的父类,后三者找不到的算子可以输入 obj查找。
14. Halcon 相等,不等于,异或,或等操作符。
直接在F1 出来的分栏输入 operation ,查找可得。
15. 在halcon环境使用 get_grayval 进行像素操作太慢,如何加速?注意到halcon环境是解释执行,get_grayval 可以一次获取多个,可以预先把行数据存入一个tuple对象,存一次以后可用多次。
因此提速方法,建议事先创建好行tuple (用tuple_add 加一,即可实现所有行加一),列的tuple 数组 (创建好可以用多次) 。
这时每次再调用get_grayval ,速度将显著提升,因为节省了逐行解释时间。
注意:如果导出到VC,则建议用get_image_pointer 获取指针进行操作。
16. 从一组region或xld,image中获取单个对象,或多个halcon同类对象构成-array 元组。
select_obj负责从多个对象的元组选出指定序号对象;concat_obj执行将俩个对象(或元组)链接成一个对象元组。
17. 更改halcon颜色查找表,显示不同颜色空间。
在编辑参数选择颜色查找表进行更改;也可以在F1输入lut进行查找设置函数。
18. 创建空对象,空Region ,空数组。
gen_empty_obj 创建空的对象;gen_emtpy_region 创建空数组;halcon环境中tuple用 :=[] 。
19. Region和xld 互相转化;多边形创建xld;直方图,直线,点集,多边形,行程编码创建region 。
Halcon里对象之间的相互转换,一般可以转化为gen_目标对象_源对象形式。
如:gen_region_contour_xld 使用xld创建一个region ;gen_contour_region_xld 从区域region创建一个轮廓xld 。
直方图histo;直线是line,点集是points,行程编码runs,黑森线hline,多边形polygon 。
按照上面格式进行查找。
20. Halcon伪彩色可以参照冈萨雷斯伪彩色章节。
21. Halcon角度分布22. 判断Region 是否为空?首先一般region是多个region存在一个regions 变量里面。
所以先使用count_obj 获得有多少个 obj;然后使用 select_obj ,选出一个区域处理;接着使用 area_center ,VC 可以使用 region.Id()!=H_EMPTY_REGION 判断是否为空。
23. 新手入门书籍?首推《机器视觉算法与应用》,这本书前面更多的是阐述一些通用的机器视觉经验,后面有跟示例,代码为halcon8.0,实际使用可能会有部分函数已经被抛弃使用;其次,冈萨雷斯绿皮书《数字图像处理》,介绍内容丰富,全面,但是可能讲得比较深,没有实际实践或再找资料展开会比较,常读不深入。
是数字图像处理基础理论不可多得的书籍。
24. 用halcon调用halcon支持的品牌相机,使用相机自带的厂家软件可以发现相机,可是halcon总是提示:图像获取设备未初始化。
这是为什么?把对应品牌的相机配置文件加到采集助手的使当前halcon调用的相机参数与厂家软件一致;再确保相机驱动,采集卡驱动安装完毕。
25. 屏幕/窗口截图。
使用dump_window_image 保存对应窗口截图,截图为当前肉眼所见图像,包括已经绘制到图像上的region,xld等。
26.导出halcon 11 代码为C++ 代码,经常提示不识别,或者名空间名字没找到。
解决办法是什么?首先 halcon11 导出如果没有勾选10 ,默认产生的C++代码,对应的主要头文件是HalconCPP.h 和 using namespace HalconCPP 。
配置如下头文件#include “HalconCPP.h” ,代码在导出时已经自动生成。
using namespace HalconCPP; 代码导出时已经自动生成。
在VC++目录,配置include路径,一个是默认Halcon安装文件夹下面的include ,另外一个根据你导出的代码而定,上面是 halconCPP ,所以对应添加 include文件夹下面的HalconCPP文件夹到路径里面。
此外配置将安装文件夹下的lib添加到库文件目录。
最后将 HalconCPP.lib添加到库的依赖项。
注意此处要一句导出代码而定,上述导出的是halcon -C++代码,所以是此处添加该项。
27. 标定助手的“平均误差”是指什么?这个平均误差的计算是按如下方式:1. 计算标定板图像的标志点位置,此处记为Mark1 ;2. 标定结束后,将标准标志点,按照得出的转换矩阵,进行转换得到Mark2;3. 由于可以得到Mark1 和 Mark2 点之间对应关系,点对应相减,绝对值累加(此处累加方式请具体查标定程序查找具体平均误差计算函数,很久,已记忆不详) ,然后除以标志点数目。