HALCON算子函数Chapter 11: Morphology
- 格式:doc
- 大小:42.50 KB
- 文档页数:7
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) 计算矩形区域( 平行输入坐标轴) 。
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函数中文速查表与手册目录一、引言二、认识Halcon函数1. 什么是Halcon函数2. Halcon函数的特点3. Halcon函数的应用领域三、Halcon函数中文速查表1. 速查表的作用2. 速查表的结构3. 速查表的使用方法四、Halcon函数手册1. 手册的重要性2. 手册的内容3. 手册的解读技巧五、我的观点和理解1. 对Halcon函数的看法2. 对速查表和手册的建议六、总结与展望一、引言Halcon是一款强大的机器视觉软件,广泛应用于工业自动化、医疗影像、智能交通等领域。
了解和掌握Halcon函数对于工程师和研究人员来说至关重要。
在本文中,我们将深入探讨Halcon函数中文速查表与手册,帮助读者更好地理解和运用Halcon函数。
二、认识Halcon函数1. 什么是Halcon函数Halcon函数是Halcon软件中提供的一系列功能模块,用于实现图像处理、模式识别、测量检测等图像分析任务。
这些函数包括图像加载、预处理、特征提取、匹配定位等多个方面,为用户提供了丰富的工具和算法。
2. Halcon函数的特点Halcon函数具有高效、稳定、精准的特点,可以处理各种复杂的图像分析问题。
无论是对图像的处理还是对算法的优化,Halcon函数都表现出了出色的性能。
3. Halcon函数的应用领域Halcon函数被广泛应用于工业质检、医疗影像诊断、智能交通、安防监控等各个领域。
其强大的功能和灵活的应用使得Halcon成为了行业中的重要工具。
三、Halcon函数中文速查表1. 速查表的作用Halcon函数中文速查表是Halcon函数的中文汇总整理,方便用户在实际应用中快速查阅各种函数的用法和参数。
2. 速查表的结构速查表通常包括函数名称、参数列表、返回值、功能描述等内容,以表格形式呈现,清晰易读。
3. 速查表的使用方法通过速查表,用户可以快速查找想要使用的函数,了解其功能和用法,以及相关的注意事项。
图像、窗口基础操作部分基础操作dev_close_window()关闭当前激活得窗口read_image( :Image:: )读取图像,可以支持多种格式,比如TIFF,PNG,JPEG-XR,JPEG—2000等,还支持一次性读取多个图像。
Image:输出,读取完后在halcon所存放得变量名:图片路径,可以就是多个路径,可以就是绝对路径或者相对路径,还可以省略扩展名示例:*Readingan image:read_image(Image,'mreut')*Reading 3 images into an imagearray: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', 'gr een','cyan’,’magenta’,’forest green', 'lime green’,'coral’,'slate blue' Box:就是否包含在一个背景框内,默认'true’,可选'true','false'基础语法If(‘condition’)… else … endif条件判断While(‘condition’)… endwhileWhile循环forIndex := ‘start‘ to ‘max’ by ‘step’… endforfor循环图像处理部分基础操作图像转化convert_image_type(Image:ImageConve rted: NewType:)转换图像类型Image : 要转化得图像ImageConverted: 输出,转化后得图像NewType:要转化得图像类型,详见Halcon得图像像素类型depose3(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:输出,计算后得结果.示例:* providesthe regionXwithoutthe pointsinYdifference(X,Y,RegionDifference)u: )Reg connection过得区域数组)Regunion2(Region1,Region2:RegionUnion : : )把两个区域合并成一个区域Region1:要合并得第一个区域Region2:要合并得第二个区域RegionUnion:输出,合并后得区域plement(Region :Regionplement ::)计算一个区域得补(一般指全图像区域减去该区域)Region:要计算得区域Regionplement:输出,计算后得区域阈值分割threshold(Image :Region:MinGray, MaxGray:)详见:thresholdauto_threshold(Image :Regions : Sigma:)自动阈值分割bin_threshold(Image :Region :: )用于提取背景为白色,且前后北京较为分明;自动选取sigma值进行告诉光滑处理,光滑直到只有一个最小值;例如提取白纸黑字,可以用此算子;mage :输入得图像Region:输出,分割后得区域char_threshold(Image,HistoRegion : Characte rs :Sigma, Percent:Threshold)阈值分割提取字符Image:输入得图像HistoRegion :要提取字符所在得区域Characters :输出,提取得到得字符区域Sigma:高斯光滑因子Percent:灰度直方图中得灰度值差得百分比Threshold:得到得用于阈值处理得阈值示例:read_image(Image, 'letters’)char_threshold(Image,Image,Seg,0、0,5、0, Threshold)connection (Seg,Connected)dual_threshold(Image :RegionCrossings :MinSize,MinGray,Threshold : )应用于分隔符号图像得阈值处理。
HALCON算子函数(六)GraphicsHALCON 算子函数——Chapter 6 : Graphics 6.1 Drawing1. drag_region1功能:一个区域的交互运动。
2. drag_region2功能:一个带有定点规格区域的交互运动。
3. drag_region3功能:一个带有限制位置区域的交互运动。
4. draw_circle功能:一个圆的交互绘图。
5. draw_circle_mod功能:一个圆的交互绘图。
6. draw_ellipse功能:一个椭圆的交互绘图。
7. draw_ellipse_mod_功能:一个椭圆的交互绘图。
8. draw_line功能:画一根线。
9. draw_line_mod功能:画一根线。
10. draw_nurbs功能:一个NURBS曲线的交互绘图。
11. draw_nurbs_interp功能:使用插值的一个NURBS曲线的交互绘图。
12. draw_nurbs_interp_mod功能:使用插值的一个NURBS曲线的交互修正。
13. draw_nurbs_mod功能:一个NURBS曲线的交互修正。
14. draw_point功能:画一个点。
15. draw_point_mod功能:画一个点。
16.draw_polygon功能:一个多边形的交互绘图。
17. draw_rectangle1功能:画一个与坐标轴平行的矩形。
18. draw_rectangle1_mod功能:画一个与坐标轴平行的矩形。
19. draw_rectangle2功能:任意定向矩形的交互绘图。
20. draw_rectangle2_mod功能:任意定向矩形的交互绘图。
21. draw_region功能:一个闭区域的交互绘图。
22. draw_xld功能:一个轮廓的交互绘图。
23. draw_xld_mod功能:一个轮廓的交互修正。
6.2 Gnuplot1. gnuplot_close功能:关闭所有打开的gnuplot文件或者终止一个活动的gnuplot子流程。
halcon常用算子原理Halcon是一款常用的机器视觉编程软件,拥有丰富的算子库。
算子是Halcon中用于实现图像处理和分析的基本操作单元,通过对图像进行各种算子操作,可以提取出感兴趣的特征信息,实现目标检测、图像匹配、测量等功能。
本文将介绍Halcon常用算子的原理和使用方法。
一、算子的基本概念算子是Halcon中的一个核心概念,它是一种用于对图像进行操作和处理的函数。
算子可以接受一个或多个输入参数,并根据这些参数对输入图像进行处理,生成输出结果。
Halcon提供了丰富的算子库,包括图像预处理、特征提取、形状分析、匹配等各个方面的算子,用户可以根据需要选择合适的算子进行组合使用。
二、算子的分类根据功能和用途的不同,Halcon中的算子可以分为以下几类:1. 图像预处理算子:用于对输入图像进行去噪、平滑、增强等预处理操作,以提高后续处理的效果。
2. 特征提取算子:用于从输入图像中提取出感兴趣的特征信息,如边缘、角点、直线、圆等。
3. 形状分析算子:用于对输入图像中的目标进行形状分析,如面积、周长、矩形度等。
4. 目标检测算子:用于在输入图像中检测目标的位置和姿态,如模板匹配、形状匹配、边缘匹配等。
5. 图像匹配算子:用于对输入图像进行模板匹配,找出与模板相似的目标。
6. 测量算子:用于对输入图像中的目标进行测量,如距离、角度、直径等。
三、算子的使用方法在Halcon中使用算子非常简单,只需按照以下步骤进行操作:1. 加载图像:使用read_image算子加载输入图像。
2. 预处理图像:根据需要使用不同的预处理算子对图像进行预处理,如smooth_image、reduce_noise等。
3. 提取特征:根据需要使用不同的特征提取算子对图像进行特征提取,如edges_image、threshold等。
4. 分析形状:根据需要使用不同的形状分析算子对目标进行形状分析,如area_center、orientation等。
Halcon形态学算子是用于图像处理的一种数学方法,主要用于提取和分析图像中的特定形状。
在Halcon中,形态学算子主要包括以下几种:1. 二值化(Binary Image):将图像转换为二值图像,即黑白图像。
常用的二值化方法有阈值法、自适应阈值法等。
2. 膨胀(Dilation):对二值图像进行膨胀操作,可以扩大图像中的白色区域。
膨胀操作可以通过结构元素来实现,结构元素的形状和大小决定了膨胀的效果。
3. 腐蚀(Erosion):对二值图像进行腐蚀操作,可以缩小图像中的白色区域。
腐蚀操作同样可以通过结构元素来实现,结构元素的形状和大小决定了腐蚀的效果。
4. 开运算(Opening):先进行腐蚀操作,再进行膨胀操作。
开运算可以消除小的白色区域,同时保持大的白色区域不变。
5. 闭运算(Closing):先进行膨胀操作,再进行腐蚀操作。
闭运算可以消除小的黑色区域,同时保持大的黑色区域不变。
6. 形态学梯度(Morphological Gradient):计算图像的灰度梯度信息,用于提取图像的边缘信息。
7. 顶帽变换(Top Hat Transformation):先进行腐蚀操作,再进行膨胀操作。
顶帽变换可以提取图像中的局部最大值信息。
8. 黑帽变换(Black Hat Transformation):先进行膨胀操作,再进行腐蚀操作。
黑帽变换可以提取图像中的局部最小值信息。
9. 形态学重建(Morphological Reconstruction):根据原始图像和形态学操作的结果,恢复原始图像的信息。
10. 形态学滤波器(Morphological Filters):通过形态学操作实现的滤波器,如平滑滤波器、边缘检测滤波器等。
在Halcon中,可以使用morphology模块中的函数来实现这些形态学算子。
HALCON算子一Classification1.1 Gaussian-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.2 Hyperboxes1. clear_sampset释放一个数据集的内存。
2. close_all_class_box清除所有分类器。
3. close_class_box清除分类器。
4. create_class_box创建一个新的分类器。
halcon常用英语单词摘要:一、引言二、Halcon 常用英语单词介绍1.基本概念2.图像处理3.机器视觉4.常用函数与操作三、Halcon 英语单词学习方法与建议1.掌握基本单词2.学习专业术语3.动手实践4.参加培训与交流四、总结正文:【引言】Halcon 是一款非常优秀的机器视觉软件,广泛应用于工业自动化领域。
为了更好地学习和使用Halcon,掌握一些常用的英语单词是必不可少的。
本文将对Halcon 常用英语单词进行概括性的介绍,并提供一些学习方法与建议。
【Halcon 常用英语单词介绍】【基本概念】1.图像处理(Image Processing)2.机器视觉(Machine Vision)3.目标检测(Object Detection)4.图像分析(Image Analysis)5.相机(Camera)【图像处理】1.滤波(Filter)2.降噪(Noise Reduction)3.边缘检测(Edge Detection)4.形态学(Morphology)5.图像分割(Image Segmentation)【机器视觉】1.光照(Illumination)2.镜头(Lens)3.图像采集(Image Acquisition)4.视觉算法(Visual Algorithm)5.机器学习(Machine Learning)【常用函数与操作】1.读取图像(Read Image)2.显示图像(Display Image)3.保存图像(Save Image)4.转换图像(Convert Image)5.图像灰度化(Grayscale Image)【Halcon 英语单词学习方法与建议】【掌握基本单词】学习Halcon 英语单词,首先要掌握一些基本单词,例如:图像、颜色、形状、尺寸等。
这些单词在实际应用中非常常见,也是学习其他专业术语的基础。
【学习专业术语】了解Halcon 的基本概念和常用函数后,可以开始学习一些专业术语,例如:滤波器、降噪、边缘检测等。
halcon算子解释Halcon算子是一种用于图像处理和计算机视觉领域的重要工具。
它通过使用预定义的数学运算符和操作来检测、分割和分析图像。
Halcon算子的设计目的是简化图像处理任务,提高处理精度和效率。
在本文中,我将解释Halcon算子的概念、功能和使用方法,让读者对其有一个全面的了解。
一、Halcon算子简介Halcon算子是由美国明尼苏达大学开发的一种图像处理工具。
它基于强大的数学环境,可以进行各种图像处理操作,包括滤波、边缘检测、形状匹配等。
Halcon算子以其高度灵活性和广泛适应性而受到了广泛的应用。
二、Halcon算子的功能1. 图像预处理:Halcon算子可以对图像进行预处理,包括灰度转换、平滑滤波、直方图均衡化等。
这些操作可以提高图像的质量,为后续的图像分析和处理提供更好的基础。
2. 特征提取与分析:Halcon算子可以检测图像中的特征,并进行跟踪和分析。
例如,可以使用Halcon算子进行形状匹配,找到图像中与参考形状相似的目标物体。
此外,Halcon算子还可以进行边缘检测、角点检测等操作。
3. 形状分割与识别:Halcon算子可以将图像中的目标物体进行分割,并对其进行识别和分类。
通过使用Halcon算子,可以根据目标物体的颜色、形状、纹理等特征将其与背景分离。
4. 三维视觉处理:Halcon算子可以处理三维图像数据,进行三维重建、三维测量等操作。
通过使用Halcon算子,可以提取三维物体的参数,如表面形状和体积等。
三、Halcon算子的使用方法Halcon算子的使用方法相对简单,主要包括以下几个步骤:1. 导入图像:首先,需要将待处理的图像导入到Halcon算子的环境中。
这可以通过图像文件的读取或者直接采集实时图像等方式来完成。
2. 预处理操作:对于导入的图像,可以根据需要进行一些预处理操作,如灰度转换、去噪处理等。
这些操作可以提高后续处理的准确性和效果。
3. 应用算子:根据具体的图像处理任务,选择合适的Halcon算子进行应用。
* This program demonstrates how to detect small texture* defects on the surface of plastic items by using the fast* fourier transform (FFT).* 检测塑料物品表面的小纹理缺陷* First, we construct a suitable filter using Gaussian* filters.创立一个滤波器* Then, the images and the filter are convolved* by using fast fourier transforms.* 图像经过傅里叶变换后,滤波,再经过反变换* Finally, the defects* are detected in the filtered images by using* morphology operators.* 通过形态学检测出缺陷* Initializationsdev_update_off ()dev_close_window ()read_image (Image, 'plastics/plastics_01')get_image_size (Image, Width, Height)dev_open_window (0, 0, Width, Height, 'black', WindowHandle) set_display_font (WindowHandle, 14, 'mono', 'true', 'false')dev_set_draw ('margin')dev_set_line_width (3)dev_set_color ('red')** Optimize the fft speed for the specific image size* 根据具体的图像尺寸优化傅里叶变换的速度(有此函数)optimize_rft_speed (Width, Height, 'standard')** Construct a suitable filter by combining two gaussian* filtersSigma1 := 10.0Sigma2 := 3.0gen_gauss_filter (GaussFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft', Width, Height)gen_gauss_filter (GaussFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft', Width, Height)sub_image (GaussFilter1, GaussFilter2, Filter, 1, 0)** Process the images iterativelyNumImages := 11for Index := 1 to NumImages by 1** Read an image and convert it to gray valuesread_image (Image, 'plastics/plastics_'+Index$'02')rgb1_to_gray (Image, Image)* RGB图-> gray图* Perform the convolution in the frequency domain* 频域图像处理三步,第二步将频域图像和高斯滤波器做卷积rft_generic (Image, ImageFFT, 'to_freq', 'none', 'complex', Width)convol_fft (ImageFFT, Filter, ImageConvol)rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)** Process the filtered imagegray_range_rect (ImageFiltered, ImageResult, 10, 10)*做一个矩形模板,模板处理图像10*10模板min_max_gray (ImageResult, ImageResult, 0, Min, Max, Range)threshold (ImageResult, RegionDynThresh, max([5.55,Max*0.8]), 255)connection (RegionDynThresh, ConnectedRegions)select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 4, 99999)union1 (SelectedRegions, RegionUnion)closing_circle (RegionUnion, RegionClosing, 10)connection (RegionClosing, ConnectedRegions1)select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 10, 99999)area_center (SelectedRegions1, Area, Row, Column)* Display the resultsdev_display (Image)Number := |Area|if (Number)gen_circle_contour_xld (ContCircle, Row, Column, gen_tuple_const(Number, 30), gen_tuple_const(Number, 0), gen_tuple_const(Number, rad(360)), 'positive', 1)ResultMessage := ['Not OK', Number + ' defect(s) found']Color := ['red','black']dev_display (ContCircle)elseResultMessage := 'OK'Color := 'forest green'endifdisp_message (WindowHandle, ResultMessage, 'window', 12, 12, Color, 'true')if (Index#NumImages)disp_continue_message (WindowHandle, 'black', 'true')stop ()endifendfor* this example shows how to detect mura defects* in blurred images 模糊图像中检测污斑* LCD中的污斑缺陷检测dev_close_window ()dev_update_off ()Path := 'lcd/mura_defects_blur_'**定义一个字符串常量,此常量接上字符串索引构成文件名称read_image (Image, Path+'01')get_image_size (Image, Width, Height)dev_open_window_fit_size (0, 0, Width, Height, 640, 480, WindowHandle) set_display_font (WindowHandle, 14, 'courier', 'true', 'false')dev_set_draw ('margin')dev_set_line_width (3)dev_set_color ('red')ScaleFactor := 0.4for f := 1 to 3 by 1read_image (Image, Path+f$'.2i')decompose3 (Image, R, G, B)* correct side illuminationrft_generic (B, ImageFFT, 'to_freq', 'none', 'complex', Width)gen_gauss_filter (ImageGauss, 100, 100, 0, 'n', 'rft', Width, Height)convol_fft (ImageFFT, ImageGauss, ImageConvol)rft_generic (ImageConvol, ImageFFT1, 'from_freq', 'none', 'byte', Width)**傅里叶变换,滤波,反变换sub_image (B, ImageFFT1, ImageSub, 2, 100)**图像相减* perform the actual inspectionzoom_image_factor (ImageSub, ImageZoomed, ScaleFactor, ScaleFactor, 'constant')*avoid border effects when using lines_gauss()*避免边界干扰get_domain (ImageZoomed, Domain)erosion_rectangle1 (Domain, RegionErosion, 7, 7)**腐蚀掉边缘,消除边界干扰,缩小ROIreduce_domain (ImageZoomed, RegionErosion, ImageReduced)**缩小ROIlines_gauss (ImageReduced, Lines, 5, 0.02, 0.3, 'dark', 'true', 'gaussian', 'true')**找线hom_mat2d_identity (HomMat2DIdentity)hom_mat2d_scale_local (HomMat2DIdentity, 1/ScaleFactor, 1/ScaleFactor, HomMat2DScale)affine_trans_contour_xld (Lines, Defects, HomMat2DScale)*dev_display (Image)dev_display (Defects)if (f < 3)disp_continue_message (WindowHandle, 'black', 'true')stop ()endifendfor。
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)自动阈值分割,根据灰度直方图中两波峰中的波谷取出阈值。
morphologyex函数morphologyex函数是一种形态学操作函数,是OpenCV中的一种函数。
它可以进行图像的腐蚀、膨胀、开运算、闭运算等操作,常用于图像处理、数字图像分析和计算机视觉等领域。
首先,腐蚀操作是一种将图像中较小的元素缩小或消除的方法,可以使对象的边界缩小或断裂,即可以将目标内部分离出来,或是去掉目标的凹陷部分。
其基本原理是用一个结构元素与图像的每个像素点进行比较,并将结构元素超出像素点的部分舍弃,最终得到一个新的图像。
语法格式是:cv2.morphologyEx(src, op, kernel)其中,src参数是要进行腐蚀操作的图像,op参数是要进行的形态学操作,kernel 参数是结构元素,它的大小和形状决定了形态操作的效果。
膨胀操作是将图像中较小的元素扩大或连接起来的方法,可以将图像中的空隙填充,或将目标的凹凸部分连接起来,其基本原理是用一个结构元素与图像的每个像素点进行比较,并将结构元素覆盖到像素点上,最终得到一个新的图像。
语法格式是:cv2.morphologyEx(src, op, kernel)其中,src参数是要进行膨胀操作的图像,op参数是要进行的形态学操作,kernel 参数是结构元素,它的大小和形状决定了形态操作的效果。
开运算是将图像先进行腐蚀操作再进行膨胀操作的方法,可以消除小的物体和连通物体的细小分支。
其基本原理是先将图像进行腐蚀操作,然后将结果进行膨胀操作。
语法格式是:cv2.morphologyEx(src, cv2.MORPH_OPEN, kernel)其中,src参数是要进行开运算的图像,cv2.MORPH_OPEN是表示进行开运算操作,kernel参数是结构元素,它的大小和形状决定了形态操作的效果。
闭运算是将图像先进行膨胀操作再进行腐蚀操作的方法,可以消除小的黑洞和孔洞。
其基本原理是先将图像进行膨胀操作,然后将结果进行腐蚀操作。
语法格式是:cv2.morphologyEx(src, cv2.MORPH_CLOSE, kernel)其中,src参数是要进行闭运算的图像,cv2.MORPH_CLOSE是表示进行闭运算操作,kernel参数是结构元素,它的大小和形状决定了形态操作的效果。
Chapter 1 :Classification (4)1.1 Gaussian-Mixture-Models (4)1.2 Hyperboxes (4)1.3 Neural-Nets (5)1.4 Support-Vector-Machines (6)Chapter 2 Control (7)Chapter3 :Develop (8)Chapter 4 :File (10)4.1 Images (10)4.2 Misc (10)4.3 Region (10)4.4 Text (10)4.5 Tuple (11)Chapter 5:Filter (12)5.1 Arithmetic (12)5.2 Bit (12)5.3 Color (13)5.4 Edges (13)5.5 Enhancement (14)5.6 FFT (15)5.7 Geometric-Transformations (16)5.8 Inpainting (17)5.9 Lines (17)5.10 Match (18)5.11 Misc (18)5.12 Noise (18)5.13 Optical-Flow (19)5.14 Points (19)5.15 Smoothing (19)5.16 Texture (20)5.17 Wiener-Filter (20)Chapter 6 :Graphics (21)6.1 Drawing (21)6.2 Gnuplot (22)6.3 LUT (22)6.4 Mouse (23)6.5 Output (23)6.6 Parameters (24)6.7 Text (26)6.8 Window (27)Chapter 7 :Image (28)7.1 Access (28)7.2 Acquisition (28)7.3 Channel (29)7.5 Domain (31)7.6 Features (31)7.7 Format (32)7.8 Manipulation (33)7.9 Type-Conversion (33)Chapter 8 :Lines (33)8.1 Access (33)8.2 Features (34)Chapter 9 :Matching (34)9.1 Component-Based (34)9.2 Correlation-Based (35)9.3 Gray-Value-Based (36)9.4 Shape-Based (36)Chapter 10 :Matching-3D (37)Chapter 11 :Morphology (38)11.1 Gray-Values (38)11.2 Region (39)Chapter 12:OCR(光字符识别) (42)12.1 Hyperboxes (42)12.2 Lexica (42)12.3 Neural-Nets(神经网络) (43)12.4 Support-Vector-Machines (支持矢量机) (44)12.5 Tools (44)12.6 Training-Files (45)Chapter 13:Object (45)13.1 Information (45)13.2 Manipulation (45)Chapter 14:Regions (46)14.1 Access (46)14.2 Creation (46)14.3 Features (47)14.4 Geometric-Transformations (49)14.5 Sets (50)14.6 Tests (50)14.7 Transformation (50)Chapter 15:Segmentation (51)15.1 Classification (51)15.2 Edges (52)15.3 Regiongrowing (52)15.4 Threshold (53)15.5 Topography (53)Chapter 16:System (54)16.1 Database (54)16.3 Information (55)16.4 Operating-System (55)16.5 Parallelization (56)16.6 Parameters (56)16.7 Serial (56)16.8 Sockets (56)Chapter 17:Tools (57)17.1 2D-Transformations (57)17.2 3D-Transformations (59)17.3 Background-Estimator (60)17.4 Barcode (60)17.5 Calibration (61)17.6 Datacode (62)17.7 Fourier-Descriptor (63)17.8 Function (63)17.9 Geometry (64)17.10 Grid-Rectification (65)17.11 Hough (66)17.12 Image-Comparison (66)17.13 Kalman-Filter (67)17.14 Measure (67)17.15 OCV(Open Circuit Voltage | 光学字符校验) (68)17.16 Shape-from (68)17.17 Stereo (69)17.18 Tools-Legacy (70)Chapter 18:Tuple (71)18.1 Arithmetic (71)18.2 Bit-Operations (72)18.3 Comparison (73)18.4 Conversion (73)18.5 Creation (74)18.6 Element-Order (74)18.7 Features (74)18.8 Logical-Operations (74)18.9 Selection (75)18.10 String-Operators (75)Chapter 19:XLD (76)19.1 Access (76)19.2 Creation (76)19.3 Features (77)19.4 Geometric-Transformations (79)19.5 Sets (79)19.6 Transformation (80)Chapter 1 :Classification1.1 Gaussian-Mixture-Models1.add_sample_class_gmm功能:把一个训练样本添加到一个高斯混合模型的训练数据上。
halcon函数手册threshold(Image : Region : MinGray, MaxGray : )Descriptionthreshold selects the pixels from the input image whose gray values g fulfill the following condition:All points of an image fulfilling the condition are returned as one region. If more than one gray valueinterval is passed (tuples for MinGray and MaxGray), one separate region is returned for each interval. For vector field images, the threshold is not applied to gray values but to the lengths of the vectors.找出图像中灰度值大于MinGray,小于MaxGray的像素点connection(Region : ConnectedRegions : : )Descriptionconnection determines the connected components of the input regions given in Region. The neighborhood used for this can be setvia set_system('neighborhood',<4/8>). The default is 8-neighborhood, which is useful for determining the connected components of the foreground. The maximum number of connected components that is returnedby connection can be set via set_system('max_connection',). The default value of 0 causes all connected components to be returned. The inverse operator of connection is union1.select_shape(Regions : SelectedRegions : Features, Operat ion, Min, Max : )DescriptionThe operator select_shape chooses regions according to shape. For each input region from Regions the indicated features(Features) are calculated. If each (Operation = 'and') or at least one (Operation = 'or') of the calculated features is within the default limits (Min,Max) the region is adapted into the output (duplicated).Condition:For an illustration of the different features, please refer to the documentationof the operator region_features.选择指定特征(满足指定条件)的区域,特征常见为面积。
halcon 函数中文说明
Halcon 是一种计算机视觉库,提供了丰富的函数来进行图像处理和分析。
以下是一些常见的 Halcon 函数及其中文说明:
1. read_image:读取图像文件。
2. write_image:将图像数据写入文件。
3. rgb_to_gray:将 RGB 图像转换为灰度图像。
4. threshold:进行图像二值化处理。
5. reduce_domain:将图像限制在指定的区域内。
6. crop_rectangle:裁剪图像的矩形区域。
7. find_shape_model:在图像中查找指定形状的模板。
8. affine_trans_image:对图像进行仿射变换。
9. gen_circle_contour_xld:生成圆形轮廓。
10. intersection_lines:计算两条直线的交点。
以上只是 Halcon 库中的一小部分函数,它还提供了许多其他的函数和工具,用于各种图像处理和计算机视觉任务。
halcon 拉普拉斯算子参数Halcon 拉普拉斯算子参数引言Halcon是一款功能强大的工业视觉软件,广泛应用于机器视觉领域。
在Halcon中,拉普拉斯算子是一种常用的边缘检测算法。
本文将介绍Halcon中拉普拉斯算子的参数及其作用,帮助读者更好地理解和应用该算法。
一、拉普拉斯算子概述拉普拉斯算子是一种二阶微分算子,用于检测图像中的边缘。
它通过计算像素周围的灰度值差异来确定边缘的位置和方向。
在Halcon 中,拉普拉斯算子可以通过设置不同的参数来调整边缘检测的效果。
二、拉普拉斯算子的参数在Halcon中,拉普拉斯算子的参数包括模板类型、平滑参数和尺度参数。
下面将逐一介绍这些参数及其作用。
1. 模板类型模板类型是指用于计算像素周围灰度值差异的模板形状。
Halcon提供了多种模板类型供用户选择,包括3x3、5x5、7x7等。
较小的模板可以检测到细小的边缘,而较大的模板可以检测到更粗的边缘。
2. 平滑参数平滑参数用于控制图像在进行边缘检测前的平滑程度。
通过对图像进行平滑处理,可以减少噪声对边缘检测结果的影响。
Halcon中的平滑参数可以设置为0、1、2或3,分别对应不进行平滑、进行一次平滑、进行两次平滑和进行三次平滑。
3. 尺度参数尺度参数用于指定边缘检测的灵敏度。
较小的尺度参数可以检测到较细的边缘,而较大的尺度参数可以检测到较粗的边缘。
Halcon中的尺度参数可以设置为1、2或3,分别对应低灵敏度、中等灵敏度和高灵敏度。
三、拉普拉斯算子的应用拉普拉斯算子在机器视觉领域有着广泛的应用。
它可以用于边缘检测、形状分析、物体定位等任务。
在实际应用中,根据具体的需求和图像特点,可以通过调整拉普拉斯算子的参数来达到最佳的边缘检测效果。
例如,当需要检测细小的边缘时,可以选择较小的模板类型和较小的尺度参数;当需要检测粗大的边缘时,可以选择较大的模板类型和较大的尺度参数。
通过调整平滑参数,可以平衡边缘检测的效果和噪声的抑制程度。
Halcon各个算⼦⾓度计算⽅式汇总⼀、区域(Region)1)elliptic_axis() 计算区域的⽅向(-π/2<θ<=π/2)这个算⼦是通过moments_region_2nd()算⼦,使⽤图形的Geometric Moments(⼏何矩)来找到的区域质⼼和区域⽅向。
⽔平⽅向为⾓度0的⽅向,区域的⽅向⼀般是指长轴与⽔平⽅向的夹⾓(注意:gen_ellipse和elliptic_axis并不是可逆操作,通过gen_ellipse得到的椭圆区域,再⽤elliptic_axis计算会有误差,不是特别理解)2)orientation_region() 计算区域的⽅向(-π<=θ<π)计算⽅法同elliptic_axis ,当轮胎上与重⼼最⼤距离的点,横坐标在重⼼左边时,则计算得到的⾓度值+π3) gen_rectangle2计算区域的⽅向(-π/2<θ<=π/2)⼆、轮廓(XLD)1)line_orientation()计算线的⽅向(-π/2<θ<=π/2)2)angle_ll()计算线的⾓度(-π<=θ<π)3)gen_measure_rectangle2获得测量矩,⾓度范围(--π<θ<=π)4)执⾏edges_sub_pix算⼦后,后续算⼦涉及到⾓度的为:select_contours_xld():'direction'⾓度范围为0-π,会把输⼊的值⾃动转换到0-π之间,下⾯两个代码效果是⼀样的select_contours_xld (ContoursSplit, LineContour1, 'direction', 1.45+π, 1.65+π, -0.5, 0.5)select_contours_xld (ContoursSplit, LineContour2, 'direction', 1.45, 1.65, -0.5, 0.5)get_contour_attrib_xld(ObjectSelected3, 'edge_direction', Attrib):'edge_direction'⾓度范围为0-2*π,边界⽅向的定义如下:沿着边界⽅向,左边为亮区域,右边为暗区域。
HALCON算子函數——Chapter 11 : Morphology
Chapter_11_:Morphology
11.1 Gray-Values
1. dual_rank
功能:打開、取中值和關閉圓和矩形掩碼。
2. gen_disc_se
功能:為灰度形態學生成橢圓結構基礎。
3. gray_bothat
功能:執行一個圖像的一個灰度值bottom_hat變換(原圖像和它的閉之間的差)。
4. gray_closing
功能:關閉一個圖像的一個灰度值。
5. gray_closing_rect
功能:關閉帶矩形掩碼的灰度值。
6. gray_cl_osing_shape
功能:關閉帶選擇掩碼的灰度值。
7. gray_dilation
功能:擴大一個圖像上的灰度值。
8. gray_dilation_rect
功能:確定一個矩形的最小灰度值。
9. gray_dilation_shape
功能:確定一個選擇的掩碼的最大灰度值。
10. gray_erosion
功能:腐蝕一個圖像的灰度值。
11. gray_erosion_rect
功能:確定一個矩形的最小灰度值。
12. gray_erosion_shape
功能:確定一個選擇的掩碼的最小灰度值。
13. gray_opening
功能:打開一個圖像的灰度值。
14. gray_opening_rect
功能:打開一個矩形掩碼的灰度值。
15. gray_openin_g_shape
功能:打開一個選擇的掩碼的灰度值。
16. gray_range_rect
功能:確定一個矩形的灰度值范圍。
17. gray_tophat
功能:執行一個圖像的一個灰度值top_hat變換(原圖像和它的開之間的差)。
18. read_gray_se
功能:為灰度形態學下載一個結構基礎。
11.2 Region
1. bottom_hat
功能:計算區域的bottom_hat(原圖像和它的閉之間的差)。
2. boundary
功能:把一個區域減小到它的邊界。
3. closing
功能:關閉一個區域。
4. closing_circle
功能:關閉一個圓形結構基礎的一個區域。
5. closing_golay
功能:關閉格雷字母表中的元素的一個區域。
6. closing_rectangle1
功能:關閉一個矩形結構基礎的一個區域。
7. dilation1
功能:擴大一個區域。
8. dilation2
功能:擴大一個區域(使用一個參考點)。
9. dilation_circle
功能:擴大一個圓形結構基礎的一個區域。
10. dilation_golay
功能:擴大格雷字母表的元素的一個區域。
11. dilation_rectangle1
功能:擴大一個矩形結構基礎的一個區域。
12. dilation_seq
功能:順序地擴大一個區域。
13. erosion1
功能:腐蝕一個區域。
14. erosion2
功能:腐蝕一個區域(使用參考點)。
15. erosion_circle
功能:腐蝕一個圓形結構基礎的一個區域。
16. erosion_golay
功能:腐蝕格雷字母表的一個元素的一個區域。
17. erosion_rectangle1
功能:腐蝕一個矩形結構基礎的一個區域。
18. erosion_seq
功能:按順序腐蝕一個區域。
19. fitting
功能:執行多重結構基礎的打開後關閉。
20. gen_struct_elements
功能:生成一個標准結構基礎。
21. golay_elements
功能:生成格雷字母表的結構基礎。
22. hit_or_miss
功能:區域的Hit-or-mis s運行。
23. hit_or_miss_golay
功能:使用格雷字母表的區域的Hit-or-mis s運行。
24. hit_or_miss_seq
功能:使用格雷字母表的區域的Hit-or-miss運行(按順序)。
25. minkowski_add1
功能:執行一個區域的Minkowski添加。
26. minkowski_add2
功能:擴大一個區域(使用參考點)。
27. minkowski_sub1
功能:腐蝕一個區域。
28. minkowski_sub2
功能:腐蝕一個區域(使用參考點)。
29. morph_hat
功能:計算bottom_hat_和top_hat的聯合。
30. morph_skeleton
功能:計算一個區域的形態學框架。
31. morph_skiz
功能:縮小一個區域。
32. opening
功能:打開一個區域。
33. opening_circle
功能:打開一個圓形結構基礎的一個區域。
34. opening_golay
功能:打開格雷字母表的一個元素的一個區域。
35. opening_rectangle1
功能:打開一個矩形結構基礎的一個區域。
36. opening_seg
功能:分離重疊區域。
37. pruning
功能:去掉一個區域的分支。
38. thickening
功能:把一個Hit-or-miss運行的結果添加到一個區域。
39. thickening_golay
功能:把一個Hit-or-miss運行的結果添加到一個區域中(使用一個Golay結構基礎)。
40. thickening_seq
功能:把一個Hit-or-miss運行的結果添加到一個區域中(按順序)。
41. thinning
功能:從一個區域移去一個Hit-or-miss運行的結果。
42. thinning_golay
功能:從一個區域移去一個Hit-or-miss運行的結果(使用一個Golay 結構基礎)。
43. thinning_seq
功能:從一個區域移去一個Hit-or-miss運行的結果(按順序)。
44. top_hat
功能:計算區域的top_hat(原圖像和它的開之間的差)。