halcon shape_trans详解(一)
HALCON 算子函数 整理 1-19章

halcon算子中文解释comment ( : : Comment : ) 注释语句exit ( : : : ) 退出函数open_file ( : : FileName, FileType : FileHandle ) 创建('output' or 'append' )或者打开(output )文本文件fwrite_string ( : : FileHandle, String : ) 写入stringdev_close_window ( : : : ) 关闭活跃的图形窗口。
read_image ( : Image : FileName : ) ;加载图片get_image_pointer1 ( Image : : : Pointer, Type, Width, Height )获得图像的数据。
如:类型(= ' 字节',' ' ',uint2 int2 等等) 和图像的尺寸( 的宽度和高度) dev_open_window( : :Row,Column,WidthHeight,Background :WindowHandle ) 打开一个图形的窗口。
dev_set_part ( : : Row1, Column1, Row2, Column2 : ) 修改图像显示的位置dev_set_draw (’fill’)填满选择的区域dev_set_draw (’margin’)显示的对象只有边缘线,dev_set_line_width (3) 线宽用Line Width 指定threshold ( Image : Region : MinGray, MaxGray : ) 选取从输入图像灰度值的g 满足下列条件:MinGray < = g < = MaxGray 的像素。
dev_set_colored (number) 显示region 是用到的颜色数目dev_set_color ( : : ColorName : ) 指定颜色connection ( Region : ConnectedRegions : : ) 合并所有选定像素触摸相互连通区fill_up ( Region : RegionFillUp : : ) 填补选择区域中空洞的部分fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : )select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : ) 选择带有某些特征的区域,Operation 是运算,如“与”“或”smallest_rectangle1 ( Regions : : : Row1, Column1, Row2, Column2 ) 以矩形像素坐标的角落,Column1,Row2(Row1,Column2) 计算矩形区域( 平行输入坐标轴) 。
Halcon算子介绍

图像、窗口基础操作部分基础操作dev_close_window()关闭当前激活的窗口read_image( : Image : FileName : )读取图像,可以支持多种格式,比如TIFF,PNG,JPEG-XR,JPEG-2000等,还支持一次性读取多个图像。
Image:输出,读取完后在halcon所存放的变量名FileName:图片路径,可以是多个路径,可以是绝对路径或者相对路径,还可以省略扩展名示例:* Reading an image:read_image(Image,'mreut')* Reading 3 images into an image array:read_image(Images,['ic0','ic1','ic2'])stop()停止程序(等待用户继续运行)get_image_size(Image : : : Width, Height)获取图像的尺寸Image:要获取尺寸的图像Width:输出,图像的宽度Height:输出,图像的高度dev_open_window( : : Row, Column, Width, Height, Background : WindowHandle)打开一个新的图像窗口Row:图像窗口左上角的起始行,默认0。
(好像没什么用)Column:图像窗口左上角的起始列,默认0.(好像没什么用)Width:图像窗口的宽度,默认256Height:图像窗口的高度,默认256Background:新窗口的背景颜色,默认黑色(black)WindowHandle:窗口的识别Iddev_display(Object : : : )将图像显示到当前的图像窗口上Object:要显示的图像对象dev_set_draw( : : DrawMode : )设置Region的显示形式DrawMode:区域的显示形式,默认'fill',可选'fill', 'margin',fill表示显示实心区域,margin 表示只显示区域的外边界dev_set_color( : : ColorName : )设置输出颜色ColorName:颜色名称,默认’white’,可选值(格式):'white', 'black', 'gray', 'red', 'green', 'blue', '#003075', '#e53019', '#ffb529'disp_message( : : WindowHandle, String, CoordSystem, Row, Column, Color, Box : )输出一段文字信息WindowHandle:要显示文字的窗口handleString:要显示的文字信息,会显示在一个行里CoordSystem:使用的坐标系,默认window,可选'window', 'image'Row,Column:文字坐标,默认12Color:文字颜色,默认'black',可选'', 'black', 'blue', 'yellow', 'red', 'green', 'cyan', 'magenta', 'forest green', 'lime green', 'coral', 'slate blue'Box:是否包含在一个背景框内,默认'true',可选'true', 'false'基础语法If(‘condition’) … else … endif条件判断While(‘condition’) … endwhileWhile循环for Index := ‘start‘ to ‘max’ by ‘step’ … endforfor循环图像处理部分基础操作图像转化convert_image_type(Image : ImageConverted : NewType : )转换图像类型Image : 要转化的图像ImageConverted : 输出,转化后的图像NewType :要转化的图像类型,详见Halcon的图像像素类型decompose3(MultiChannelImage : Image1, Image2, Image3 : : )把一个RGB图像转化为3个单通道的图像MultiChannelImage:输入的多通道图像(应该是3通道?)Image1, Image2, Image3:输出,转化后的单通道图像,1是red,2是green,3是bluergb1_to_gray(RGBImage : GrayImage : : )把一张RGB图像转化为灰度图像RGBImage:输入的RGB图像GrayImage:输出,得到的灰度图像腐蚀膨胀gen_disc_se( : SE : Type, Width, Height, Smax : )创建一个椭圆形结构元素,用于图像的腐蚀膨胀SE:输出,生成后的结构元素,图像类型Type:结构元素的图像像素类型,默认是’byte’,可选:’byte’,’uint2’,’real’,详见Halcon 的图像像素类型gray_erosion(Image, SE : ImageErosion : : )使用结构元素对图像做腐蚀操作(结构元素可以是gen_disc_se的输出)Image:要做腐蚀操作的图像SE:结构元素ImageErosion:输出,腐蚀后的图像gray_dilation(Image, SE : ImageDilation : : )使用结构元素对图像做膨胀操作(结构元素可以是gen_disc_se的输出)Image:要做膨胀操作的图像SE:结构元素ImageDilation:输出,膨胀后的图像区域处理部分基础操作threshold(Image : Region : MinGray, MaxGray : )将图像根据灰度值二值化Image:需要进行二值化的图像Region:输出,二值化后的结果区域MinGray:最小灰度值,默认128MaxGray:最大灰度值,默认255,必须大于MinGrayconnection(Region : ConnectedRegions : : )计算出区域中连接的部分Region:要计算的区域ConnectedRegions:输出,计算后的Region数组,相连的部分将被划分为一个区域,会以不同颜色加以区分select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )从一个区域数组中选择出符合某特征条件的区域Regions:输入的区域数组SelectedRegions:输出,选出的符合某些特征条件的区域数组Features:条件特征,详见区域特征说明Operation:对于符合特征的区域的连接操作,可以是And 或者OrMin:特征的最小值Max:特征的最大值示例:read_image(Image,'monkey')threshold(Image,S1,160,255)connection(S1,S2)select_shape(S2,Eyes,['area','anisometry'],'and',[500,1.0],[50000,1.7])disp_region(Eyes,WindowHandle)difference(Region, Sub : RegionDifference : : )计算两个区域的差Region :需要处理的区域Sub :被减去的区域RegionDifference :输出,计算后的结果。
HALCON中的算子大全(中英对照)

功能:停止程序执行。 18.until 功能:继续执行主体,只要条件是不真实的。 19. while 功能:继续执行主体,只要条件是真实的。
Chapter3 :Develop 1.dev_clear_obj 功能:从 HALCON 数据库中删除一个图标。 2. dev_clear_window 功能:清除活动图形窗口。 3. dev_close_inspect_ctrl 功能:关闭一个控制变量的监视窗口。 4. dev_close_window 功能:关闭活动图形窗口。 5. dev_display 功能:在现有图形窗口中显示图像目标。 6. dev_error_var 功能:定义或者不定义一个错误变量。 7. dev_get_preferences 功能:通过设计查询 HDevelop 的参数选择。 8. dev_inspect_ctrl 功能:打开一个窗口来检查一个控制变量。 9. dev_map_par 功能:打开一个对话框来指定显示参数。 10. dev_map_prog 功能:使 HDevelop 的主窗口可视化。 11. dev_map_var 功能:在屏幕上绘制可视化窗口。 12. dev_open_window 功能:打开一个图形窗口。 13. dev_set_check 功能:指定错误处理。 14. dev_set_color 功能:设置一个或更多输出颜色。 15. dev_set_colored 功能:设置混合输出颜色。 16. dev_set_draw 功能:定义区域填充模式。 17. dev_set_line_width 功能:定义区域轮廓输出的线宽。 18. dev_set_lut 功能:设置查询表(lut). 19. dev_set_paint
halcon几何定位+仿射变换算子总结

一、概述Halcon是一款强大的机器视觉软件,其几何定位和仿射变换算子在工业自动化和图像处理领域有着重要的应用。
本文将对Halcon中的几何定位和仿射变换算子进行总结和讨论,希望能为相关领域的研究者和从业人员提供一些帮助。
二、Halcon几何定位算子1. 几何定位的基本原理几何定位是指在图像处理中找到物体的几何位置和姿态的过程。
Halcon提供了一系列用于几何定位的算子,如find_shape_model、find_scaled_shape_model、find_line和find_circle等。
这些算子可以用于在图像中查找特定形状的物体,并确定其位置和旋转角度。
2. 几何定位算子的使用方法在使用Halcon进行几何定位时,首先需要提供一个模板图像或者基准对象的特征描述,然后利用相应的算子在目标图像中进行匹配,最终得到物体的位置和姿态信息。
其中,find_shape_model和find_scaled_shape_model算子适用于查找具有特定形状和尺寸的物体,而find_line和find_circle算子则可以用于检测直线和圆圈等基本几何形状。
3. 几何定位算子的优缺点Halcon的几何定位算子具有高精度、高鲁棒性和良好的实时性等优点,可以应用于工业自动化领域中的物体检测和定位任务。
但是,对于光照变化大或者物体表面纹理复杂的情况,其准确性可能会受到一定程度的影响。
三、Halcon仿射变换算子1. 仿射变换的基本原理仿射变换是指在二维空间中对图像进行平移、旋转、缩放和错切等操作的线性变换过程。
Halcon提供了一系列用于仿射变换的算子,如affine_trans_image、hom_mat2d_identity、hom_mat2d_translate和hom_mat2d_rotate等。
这些算子可以用于对图像进行各种仿射变换操作。
2. 仿射变换算子的使用方法在使用Halcon进行仿射变换时,首先需要构造一个仿射变换矩阵,然后利用相应的算子对图像进行变换。
halcon lut_trans原理

Halcon lut_trans原理1. 介绍Halcon lut_transHalcon是一款由MVTec Software GmbH开发的先进的机器视觉软件,用于工业自动化领域。
lut_trans是Halcon软件中的一种重要功能,用于LUT(Look-Up Table)转换。
本文将深入探讨Halcon lut_trans的原理和应用。
2. LUT(Look-Up Table)转换的概念LUT转换是一种常见的图像处理技术,它通过将输入图像的每个像素值映射到一个预先定义的LUT表中的值来实现。
这种技术通常用于图像增强、颜色校正等应用中。
3. Halcon lut_trans的原理Halcon lut_trans函数是用来对输入图像进行LUT转换的功能。
它需要输入两个主要参数:输入图像和LUT表。
输入图像可以是灰度图像或彩色图像,而LUT表则是一个数组,其中包含了每个像素值对应的输出值。
在进行LUT转换时,Halcon lut_trans会将输入图像的每个像素值作为索引,从LUT表中查找对应的输出值,并将其替换原来的像素值。
这样,就实现了对图像的LUT转换。
4. Halcon lut_trans的应用Halcon lut_trans函数在工业视觉和图像处理领域有着广泛的应用。
它可以用于图像增强、颜色校正、灰度变换等各种图像处理任务中。
在工业检测中,经常需要对图像进行增强处理,以便更好地识别目标物体。
通过使用Halcon lut_trans函数,可以轻松实现对图像对比度、亮度等参数的调整,从而提高图像的质量和清晰度。
另外,Halcon lut_trans函数还可以用于彩色图像的颜色校正。
通过定义合适的LUT表,可以实现对图像色调、亮度、饱和度等参数的调整,从而使图像的色彩更加真实和逼真。
5. 总结Halcon lut_trans是Halcon软件中的一项重要功能,它通过LUT转换技术实现对图像的处理和增强。
Halcon图像变量

Halcon图像变量⽬录导航数字图像数据可以⽤矩阵表⽰。
数字图像分类:根据每个像素信息不同,通常将图像分为:⼆值图,灰度图,RGB图像1.⼆值图:每个像素只有0(⿊)1(⽩)两种颜⾊的图像成为⼆值图。
2.灰度图:在⿊与⽩之间构建更多的颜⾊深度,⼀般灰度从暗⿊⾊到最亮的⽩⾊过渡,根据保存灰度数值所使⽤的的数据类型的不同,可以有2^k种,k=1时是⼆值图,k=8时是常见的灰度图。
3:RGB图像:有Red、Green、Blue三个颜⾊组合⽽成,三个颜⾊各有256个级别,每种原⾊采⽤8位⼆进制整数表⽰,于是三通道RGB共需要24位⼆进制数,共可以表⽰颜⾊种类数为256*256*256=2^24,⼤约1600万种颜⾊。
Region初步理解:Region可以理解为符合某些性质像素的⼦集。
Region的形状可以是任意的,单独的个点都可以成为⼀个Region,Region结构是游程编码的⼀种变体;游程(⾏程)编码:⽤⼀个符号值或串长代替具有相同值的连续符号,使符号长度少于原始数据的长度,属于⽆损压缩编码。
例⼦: AAABBBBBCCDDDD游程编码:A3B5C2D4threshold (Image, Region, 128, 255)使⽤阈值分割图像,得到灰度值在最⼩到最⼤之间的那些像素区域(⼆值化算⼦对于彩图只针对第⼀通道⼆值化可以通过access_channel(MultiChannelImage : Image : Channel : )获取不同通道的图像再进⾏⼆值化)Region特征(1)basic基础特征:⾯积,中⼼,宽⾼,左上⾓及右下⾓坐标,长半轴短半轴椭圆⽅向,粗糙度,联通数,最⼤半径,⽅向等;(2)shape形状特征:外接圆半径,内接圆半径,圆度,紧密度,长度,矩形度,凸性,偏⼼率,外接矩形的⽅向及两边长度等;(3)⼏何矩特征:⼆阶矩,三阶矩,主惯性轴等;regiongrowing(Image : Regions : Row, Column, Tolerance, MinSize : )* 区域填充分割图像(⽣成的region可以通过select_shape算⼦选取凸性特征,convexity)Row:掩膜的⾼;Column:掩膜的款;Tolerance:掩膜内灰度值差⼩于等于这个值则认为是同⼀个region;MinSize:单个region的最⼩⾯积值;area_center(Regions : : : Area, Row, Column)* 计算⾯积和任意形状的区域中⼼位置(中⼼位置不⼀定在region上)union2(Region1, Region2 : RegionUnion : : )* 把两个region合并成⼀个region* region2中的对象会先合并成⼀个对象再与region1中的对象进⾏合并,合并后的regionUnion对象个数与region1⼀致;difference(Region, Sub :RegionDifference : : )* 计算两个区域的差 RegionDifference = Region - Subcomplement(Region : RegionComplement : : )* 计算⼀个区域的补集shape_trans(Region : RegionTrans : Type : )* 转换区域的形状Type:转换类型(凸性,外接圆,内切圆,最⼩外接矩形(平⾏坐标轴),最⼩外接矩形(⾓度),内接矩形等)XLD初步理解相对于图像image和区域region,这些数据结构是像素精度的,在实际⼯业应⽤中,需要⽐图像像素分辨率更⾼的精度,这时就需要提取亚像素精度数据,亚像素精度数据可以通过亚像素阈值分割或者亚像素边缘提取来获得,这些处理得到的结果就是⽤亚像素轮廓来表⽰,XLD可以描述直线或者多边形,是⼀组有序控制点的集合。
halcon中的常用算子的中文说明

halcon中的常用算子的中文说明sub_image (ImageConverted1, ImageConverted2, ImageSub, 1, 0)一幅图减另一幅图。
用一幅图的灰度减另一幅的灰度成新的一幅图。
mult_image (Image, ImagePart, ImageResult, 0.015, 0)一幅图加一幅成的一幅图convert_image_type (Traffic2, ImageConverted2, 'int2')转换图像的格式crop_part (ImageNoise, ImagePart, 0, 0, Width, Height)取出一幅图的中部分dots_image (ImageResult, DotImage, 5, 'dark', 2)取出图像中圆点partition_dynamic (SelectedRegions, Partitioned, 25, 20)根据各个区域的特征将各个区域分割开。
intersection (Partitioned, Region, Characters)取出两个区域中重叠的部分,如果Region有两个区域在Partitioned中,则这两个区域合并成一区域。
difference (RegionDilation, RegionErosion, RegionDifference) 取出两个区域中不重叠的部分。
critical_points_sub_pix (FilterResponse, 'facet', 1.5, 0.7, RowMin, ColMin, RowMax, ColMax, RowSaddle, ColSaddle)取出图像中的关键点。
corner_response (Image, FilterResponse, 3, 0.04)auto_threshold (Image, Regions, 10)自动阈值分割,根据灰度直方图中两波峰中的波谷取出阈值。
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:⼆值化之后的区域虽然不连通,但仍然认为是⼀个区域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
halcon shape_trans详解(一)
Halcon shape_trans详解
1. shape_trans的作用
shape_trans是Halcon中的一个函数,用于对图像中的形状进行
变换。
它可以实现平移、缩放、旋转等常见的几何变换操作,使得形
状在图像中的位置和尺寸发生改变。
2. shape_trans的基本用法
shape_trans的基本用法如下:
shape_transformed = shape_trans(shape, Type, Param)•shape:输入的形状。
•Type:变换类型,可以是”translate”(平移)、“scale”
(缩放)、“rotate”(旋转)等。
•Param:变换参数,根据不同的变换类型而不同。
3. 平移变换
平移变换是指将形状在图像中沿水平和垂直方向移动一定的距离。
平移变换的参数由一个二元组(x, y)表示,表示在水平方向上平移x
个像素,在垂直方向上平移y个像素。
示例代码如下:
translated_shape = shape_trans(shape, "translate", (x, y))
4. 缩放变换
缩放变换是指通过改变形状的尺寸,使其在图像中变大或变小。
缩放变换的参数由一个标量表示,表示在水平和垂直方向上的缩放比例,若该比例小于1则形状变小,若大于1则形状变大。
示例代码如下:
scaled_shape = shape_trans(shape, "scale", scale_fa ctor)
5. 旋转变换
旋转变换是指将形状按照一定的角度旋转。
旋转变换的参数由一个标量表示,表示旋转角度,以弧度为单位。
正值表示顺时针方向旋转,负值表示逆时针方向旋转。
示例代码如下:
rotated_shape = shape_trans(shape, "rotate", rotati on_angle)
6. 结束语
通过shape_trans函数,我们可以方便地实现对图像中形状的平移、缩放和旋转等操作。
这些操作对于图像处理和分析中的形状定位和形状匹配等任务非常有用。
希望本篇文章对你理解和使用
shape_trans有所帮助。