halcon sort_region详解
Halcon常见算子的用法
![Halcon常见算子的用法](https://img.taocdn.com/s3/m/4bd6d304fe00bed5b9f3f90f76c66137ee064f7a.png)
Halcon常见算子的用法1.threshold ( Image :Region : MinGray, MaxGray : )选取从输入图像灰度值的g满足下列条件:MinGray < = g < = MaxGray 的像素为目标。
2.bin_threshold( Image : Region : : )自动确定阈值 Region:黑暗区域为目标图像。
举例:threshold(Image,CircleRegion,200,255)bin_threshold(Image, Region)处理结果如下图:对于threshold 可用于提取任意区域,本例中白色为目标,可提取圆形。
bin_threshold只能将工件区域作为目标。
3.dyn_threshold ( OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )自适应阈值分割:主要用于光照不均匀图像的局部阈值分割,比较两个像素的图像像素RegionDynThresh(Out) 分割区域Offset: 减少噪音引起的问题LightDark 提取光明、黑暗或类似的地方常常与mean_image 函数一起用来处理背景光照分布不均匀的问题。
举例:mean_image (ParticlesRed, Mean, 31, 31) #均值滤波dyn_threshold (ParticlesRed, Mean, SmallRaw, 3, 'light')4.reduce_domain( Image, ROI : ImageReduced : : )主要用来获得选取Image图像中的ROI范围的区域。
用于提取原始图像中感兴趣的区域。
举例:read_image (Image, 'mreut')gen_circle (ROI, 256, 256, 200) * 创建一个圆reduce_domain (Image, ROI, ImageReduced) *和图像结合起来--- 选取图像中的圆范围的图像形成了ROIedges_sub_pix (ImageReduced, Edges, 'lanser2', 0.5, 20, 40) dev_display (Image)dev_display (ROI)dev_display (Edges)处理结果如下图:说明后续处理的区域都在圆的范围内。
HALCON运算符及功能-中文
![HALCON运算符及功能-中文](https://img.taocdn.com/s3/m/60301e0deff9aef8941e0617.png)
HALCON运算符及功能Chapter1: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功能:清除所有分类器。
halcon 区域的各种技巧
![halcon 区域的各种技巧](https://img.taocdn.com/s3/m/28daa1172bf90242a8956bec0975f46526d3a75e.png)
Halcon 区域的各种技巧Halcon 是一款强大的机器视觉软件库,广泛应用于工业自动化领域。
区域是Halcon 中的重要概念,用于表示图像中感兴趣的区域。
本文将介绍 Halcon 中区域的各种技巧,包括创建、操作和分析区域等方面。
1. 创建区域1.1 点集在 Halcon 中,可以通过点集来创建区域。
点集是由一系列二维坐标点组成的数据结构。
points := [[100, 200], [150, 250], [200, 300]]region := gen_region_points(points)上述代码创建了一个包含三个点的区域。
1.2 线段除了点集,还可以使用线段来创建区域。
线段由起始点和结束点组成。
start_x := 100start_y := 200end_x := 300end_y := 400region := gen_region_line(start_x, start_y, end_x, end_y)上述代码创建了一个起始点为 (100, 200),结束点为 (300, 400) 的线段区域。
1.3 矩形矩形是一种常见的区域类型,在 Halcon 中可以通过指定左上角和右下角坐标来创建矩形。
top := 100left := 200bottom := 300right := 400region := gen_region_rectangle1(top, left, bottom, right)上述代码创建了一个左上角坐标为 (100, 200),右下角坐标为 (300, 400) 的矩形区域。
1.4 圆形圆形也是一种常见的区域类型,在 Halcon 中可以通过指定圆心坐标和半径来创建圆形。
center_x := 200center_y := 300radius := 100region := gen_region_circle(center_x, center_y, radius)上述代码创建了一个圆心坐标为 (200, 300),半径为 100 的圆形区域。
halcon 轮廓与region的运算
![halcon 轮廓与region的运算](https://img.taocdn.com/s3/m/9493bd8c8ad63186bceb19e8b8f67c1cfad6eef1.png)
Halcon是一款常用的机器视觉软件,其中的轮廓(contour)与region的运算在图像处理中起着至关重要的作用。
本文将对Halcon中轮廓与region的运算进行较为详细的介绍和分析,包括两者的概念、常见的运算操作以及在实际应用中的一些技巧和注意事项。
一、轮廓和region的概念1. 轮廓(contour):轮廓是一条由一系列相邻像素组成的路径,通常用于表示物体的边缘或者特定区域的边界。
在Halcon中,轮廓可以通过边缘检测、边缘连接等方法得到。
2. region:region是一个封闭的区域,可以是一个物体的外形或者某个特定区域的表示。
在Halcon中,region可以通过二值化、连通域分析等方法获取。
二、常见的轮廓和region的运算1. 轮廓与region的相交:在实际应用中,我们经常需要判断一个轮廓是否与一个region相交,以及它们的交集是什么。
Halcon提供了相应的运算函数,如intersect_contours_xld、intersect_region等。
2. 轮廓与region的合并:有时候,我们需要将一个轮廓与一个region进行合并,得到一个新的region。
Halcon中的union1、gen_region_contour_xld等函数可以实现这一操作。
3. 轮廓与region的差:当我们需要求一个region去除一个轮廓之后的区域,或者求两个region之间的差,Halcon的difference、difference_rr、difference_contours_xld等函数可以帮助我们实现。
4. 轮廓与region的包含关系:判断一个region是否包含某个轮廓,或者一个轮廓是否包含在某个region中,Halcon中的cont本人ns、cont本人ns_region等函数可以派上用场。
三、在实际应用中的一些技巧和注意事项1. 数据类型的转换:在进行轮廓与region的运算时,需要注意数据类型的转换,保证输入数据的一致性,避免出现错误的运算结果。
halcon中的region定义
![halcon中的region定义](https://img.taocdn.com/s3/m/c2ad6828a55177232f60ddccda38376baf1fe099.png)
halcon中的region定义Halcon是一种用于机器视觉应用的编程软件,它提供了丰富的图像处理和分析工具。
在Halcon中,Region是一种常用的数据类型,用于表示图像中的特定区域。
本文将介绍Halcon 中Region的定义和常见操作。
在Halcon中,Region是一种由连续的像素点组成的集合,可以用来表示图像中的物体或区域。
Region的定义可以基于像素的坐标、形状或其他特征。
Halcon提供了多种方式来定义Region,下面将介绍其中常用的几种方法。
一种常见的方式是基于像素的坐标来定义Region。
在Halcon 中,我们可以通过指定一个像素的坐标来创建一个Region,然后通过添加其他像素的坐标来扩展这个区域。
例如,我们可以使用以下代码创建一个以(100, 100)为中心,半径为50的圆形区域:```Halconcreate_ring(Ring, 100, 100, 50)```这个代码首先创建了一个空的Region对象Ring,然后使用create_ring函数将一个圆形区域添加到Ring中。
除了使用像素的坐标,我们还可以使用形状来定义Region。
Halcon中提供了多种形状,包括矩形、椭圆、多边形等。
例如,我们可以使用以下代码创建一个矩形区域:```Halconcreate_rectangle1(Rectangle, 100, 100, 200, 150)```这个代码创建了一个以(100, 100)为左上角,宽度为200,高度为150的矩形区域。
类似地,我们可以使用其他函数来创建其他形状的区域。
除了创建Region,Halcon还提供了多种操作来修改和处理Region。
例如,我们可以使用以下代码将两个Region进行并集操作:```Halconunion(Ring1, Ring2, RingUnion)```这个代码将Region Ring1和Ring2进行并集操作,并将结果保存到RingUnion中。
halcon中的常用算子的中文说明
![halcon中的常用算子的中文说明](https://img.taocdn.com/s3/m/fdf634cbcf2f0066f5335a8102d276a201296056.png)
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算子介绍](https://img.taocdn.com/s3/m/6e20d00cbe23482fb5da4c4b.png)
图像、窗口基础操作部分基础操作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算子区域特征
![机器视觉之halcon算子区域特征](https://img.taocdn.com/s3/m/032586ad4afe04a1b071deae.png)
Geometric moments of the region
几何矩
moments_m20
Geometric moments of the region
几何矩
moments_m02
Geometric moments of the region
几何矩
moments_ia
Geometric moments of the region
Region特征一览:
特征
英
译
备注
area
Area of the object
对象的面积
row
Row index of the center
中心点的行坐标
column
Column index of the center
中心点的列坐标
width
Width of the region
区域的宽度
height
Height of the largest axis-parallel rectangle that fits into the region
最大内接矩形高度
dist_mean
Mean distance from the region border to the center
区域边界到中心的平均距离
最小外接圆半径
inner_radius
Radius of largest inner circle
最大内接圆半径
inner_width
Width of the largest axis-parallel rectangle that fits into the region
最大内接矩形宽度
Halcon算子--区域特征
![Halcon算子--区域特征](https://img.taocdn.com/s3/m/c5e0e3a764ce0508763231126edb6f1aff0071f8.png)
Halcon算⼦--区域特征当我们想要提取Region时,图像处理后,往往存在⼏个类似的Region,此时,需要根据Region的⼀些特殊特征,来选择指定的Region。
求Region指定特征值:region_features(Regions : : Features : Value)根据特征值选择区域:select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )Region特征⼀览:特征英译备注area Area of the object对象的⾯积row Row index of the center中⼼点的⾏坐标column Column index of the center中⼼点的列坐标width Width of the region区域的宽度height Height of the region区域的⾼度row1Row index of upper left corner左上⾓⾏坐标column1Column index of upper left corner左上⾓列坐标row2Row index of lower right corner右下⾓⾏坐标column2Column index of lower right corner右下⾓列坐标circularity Circularity圆度0~1compactness Compactness紧密度0~1contlength Total length of contour轮廓线总长convexity Convexity凸性rectangularity Rectangularity矩形度0~1ra Main radius of the equivalent ellipse等效椭圆长轴半径长度rb Secondary radius of the equivalent ellipse等效椭圆短轴半径长度phi Orientation of the equivalent ellipse等效椭圆⽅向anisometry Anisometry椭圆参数,Ra/Rb长轴与短轴的⽐值bulkiness Bulkiness椭圆参数,蓬松度π*Ra*Rb/Astruct_factor Structur Factor 椭圆参数,Anisometry*Bulkiness-1outer_radius Radius of smallest surrounding circle最⼩外接圆半径inner_radius Radius of largest inner circle最⼤内接圆半径inner_width Width of the largest axis-parallel rectanglethat fits into the region最⼤内接矩形宽度inner_height Height of the largest axis-parallel rectanglethat fits into the region最⼤内接矩形⾼度dist_mean Mean distance from the region border to thecenter区域边界到中⼼的平均距离dist_deviation Deviation of the distance from the regionborder from the center区域边界到中⼼距离的偏差roundness Roundness圆度,与circularity计算⽅法不同num_sides Number of polygon sides多边形边数connect_num Number of connection components连通数holes_num Number of holes区域内洞数area_holes Area of the holes of the object所有洞的⾯积max_diameter Maximum diameter of the region最⼤直径orientation Orientation of the region区域⽅向euler_number Euler number 欧拉数,即连通数和洞数的差rect2_phi Orientation of the smallest surroundingrectangle最⼩外接矩形的⽅向rect2_len1Half the length of the smallest surroundingrectangle最⼩外接矩形长度的⼀半??smallest_rectangle2 Half the width of the smallest surroundingrect2_len2Half the width of the smallest surroundingrectangle最⼩外接矩形宽度的⼀半moments_m11Geometric moments of the region⼏何矩moments_m20Geometric moments of the region⼏何矩moments_m02Geometric moments of the region⼏何矩moments_ia Geometric moments of the region⼏何矩moments_ib Geometric moments of the region⼏何矩moments_m11_invar Geometric moments of the region⼏何矩moments_m20_invar Geometric moments of the region⼏何矩moments_m02_invar Geometric moments of the region⼏何矩moments_phi1Geometric moments of the region⼏何矩moments_phi2Geometric moments of the region⼏何矩moments_m21Geometric moments of the region⼏何矩moments_m12Geometric moments of the region⼏何矩moments_m03Geometric moments of the region⼏何矩moments_m30Geometric moments of the region⼏何矩moments_m21_invar Geometric moments of the region⼏何矩moments_m12_invar Geometric moments of the region⼏何矩moments_m03_invar Geometric moments of the region⼏何矩moments_m30_invar Geometric moments of the region⼏何矩moments_i1Geometric moments of the region⼏何矩moments_i2Geometric moments of the region⼏何矩moments_i3Geometric moments of the region⼏何矩moments_i4Geometric moments of the region⼏何矩moments_psi1Geometric moments of the region⼏何矩moments_psi2Geometric moments of the region⼏何矩moments_psi3Geometric moments of the region⼏何矩moments_psi4Geometric moments of the region⼏何矩。
halconRegion间的交集、并集、补集。收集筛选的Region。图缩放到区域中。灰度。。。
![halconRegion间的交集、并集、补集。收集筛选的Region。图缩放到区域中。灰度。。。](https://img.taocdn.com/s3/m/704e9452326c1eb91a37f111f18583d049640f1c.png)
halconRegion间的交集、并集、补集。
收集筛选的Region。
图缩放到区域中。
灰度。
【区域与区域】交集:intersection (区域1, 区域2, 交集图)并集:union2(区域1,区域2,并集图)补集(差异的区域):difference(⼤区域,⼩区域,补集图),或 complement (Region, 整幅图内Region的补集)【收集筛选的Region】area_center (ConnectedRegions, Area, Row, Column)*先创建空Region,⽤来收集筛选的Regiongen_empty_region (EmptyRegion)for i := 0 to |Row|-1 by 1if (满⾜某个条件)*把满⾜条件的Region收集到EmptyRegion中,注意select_obj的索引从1开始select_obj (ConnectedRegions, ObjectSelected, i+1) union2 (ObjectSelected, EmptyRegion, EmptyRegion)endifendfor*最终EmptyRegion集结了所有满⾜条件的Region【图与区域】图缩放到区域中:reduce_domain (图, 区域, 缩放到区域的图)【灰度图的交、补】即共同部分,差异部分。
* 开、闭运算后,求不同部分、相同部分gray_opening_shape (Image, ImageOpening, 7, 7, 'octagon')gray_closing_shape (Image, ImageClosing, 7, 7, 'octagon')dyn_threshold (ImageOpening, ImageClosing, RegionDynThresh, 75, 'not_equal')dyn_threshold (ImageOpening, ImageClosing, RegionDynThresh, 75, 'equal')。
halcon的region灰度排序
![halcon的region灰度排序](https://img.taocdn.com/s3/m/bd0ef53703768e9951e79b89680203d8ce2f6a16.png)
halcon的region灰度排序[halcon的region灰度排序]是指在halcon图像处理软件中,对图像中的每个区域根据其灰度值进行排序的操作。
本文将一步一步回答有关该主题的问题,并解释如何实现region灰度排序。
第一步:什么是region灰度排序?在halcon中,region是指图像中的连续区域,包括物体、边界等。
灰度排序是指根据区域内像素的灰度值,对这些区域进行排序。
通过灰度排序,可以根据区域的灰度值找出灰度最高或最低的区域。
第二步:如何实现region灰度排序?要实现region灰度排序,需要以下步骤:1. 将图像进行灰度化处理。
可以使用halcon提供的灰度化函数,如rgb2gray(),将彩色图像转换为灰度图像。
2. 根据图像的特征提取区域。
可以使用halcon的分割算法,如threshold()或regiongrowing(),来提取区域。
3. 计算每个区域的灰度值。
使用region灰度值函数,如mean_gray()或median_gray(),计算每个区域的平均灰度值或中值。
4. 对灰度值进行排序。
使用halcon的排序函数,如sort_gray(),将区域按照灰度值进行排序。
5. 根据排序结果对区域进行分析或处理。
可以根据灰度值的大小,从排序后的区域中选择灰度最高或最低的区域进行进一步操作。
第三步:示例代码以下是一个简单示例代码,展示如何实现region灰度排序:read_image(Image, 'example.png')ImageGray := rgb2gray(Image)Threshold := 128BinaryImage := ImageGray >= ThresholdRegion := connection(BinaryImage)MeanGray := mean_gray(Region, ImageGray) SortIndex := sort_gray(MeanGray, Descending)for Index := 1 to num_obj(Region)ObjectIndex := SortIndex[Index]SelectedObject := select_obj(Region, ObjectIndex)根据需要进行进一步操作,例如显示区域、保存区域等dev_set_color('red')dev_display(SelectedObject)等待用户按下键盘继续clear_window()disp_region(SelectedObject, Image, 1)dev_set_tposition(10,10)dev_disp_text('Press any key')dev_update_window()wait_key()endfor第四步:总结通过halcon的region灰度排序功能,可以根据区域的灰度值进行排序,进而选择灰度最高或最低的区域进行相关操作。
halcon的region数组
![halcon的region数组](https://img.taocdn.com/s3/m/e287287a82c4bb4cf7ec4afe04a1b0717fd5b322.png)
halcon的region数组
Halcon的region数组是指在Halcon图像处理库中用来存储图像区域的数据结构。
在Halcon中,图像区域可以表示为一组连续的像素点集合,而region数组就是用来存储这些像素点集合的数据结构。
在Halcon中,可以通过多种方式创建和操作region数组。
首先,可以通过直接从图像中提取区域来创建region数组,比如通过阈值分割、边缘检测等方法得到感兴趣的区域。
其次,可以通过对现有的region数组进行逻辑运算(如并集、交集、补集等)来创建新的region数组。
此外,还可以通过手动指定像素坐标来创建region数组,或者通过读取外部文件中的区域数据来创建region 数组。
一旦创建了region数组,就可以对其进行各种操作和分析。
比如可以计算区域的面积、周长,进行形态学操作(如膨胀、腐蚀、开运算、闭运算等),进行区域的特征提取(如Hu矩、Zernike矩等),或者进行区域的显示和可视化。
总的来说,Halcon的region数组是一个非常灵活和强大的数
据结构,可以方便地存储和操作图像中的区域信息,为图像处理和分析提供了很大的便利。
通过对region数组的合理应用,可以实现各种复杂的图像处理任务,包括目标检测、分割、测量等。
halcon的region灰度排序
![halcon的region灰度排序](https://img.taocdn.com/s3/m/aab4c6030812a21614791711cc7931b764ce7b5c.png)
halcon的region灰度排序(实用版)目录1.HALCON 简介2.HALCON 的 region 灰度排序原理3.应用实例4.总结正文一、HALCON 简介HALCON 是德国 MVTec 公司开发的一款机器视觉软件库,它具有强大的图像处理和分析功能,被广泛应用于工业自动化、医学影像处理、智能交通等领域。
HALCON 提供了丰富的图像处理算法,如滤波、边缘检测、特征提取等,为用户提供了灵活的编程接口和强大的功能支持。
二、HALCON 的 region 灰度排序原理在 HALCON 中,region 灰度排序是一种基于区域图像特征的排序方法。
它首先对输入图像进行分割,得到一系列具有相似灰度特性的区域,然后对这些区域进行排序。
排序的依据是区域的灰度值,灰度值越大,排序结果越靠前。
具体来说,region 灰度排序的实现步骤如下:1.读取图像,并将其转换为灰度图像。
这可以通过调用 HALCON 函数readimage 和 rgb1togray 实现。
2.对灰度图像进行阈值处理,得到二值图像。
这可以通过调用 HALCON 函数 threshold 实现。
3.对二值图像进行区域生长,得到一系列区域。
这可以通过调用HALCON 函数 connection 实现。
4.计算每个区域的灰度值,并进行排序。
这可以通过调用 HALCON 函数 selectgray 实现。
5.根据排序结果,输出排序后的图像。
这可以通过调用 HALCON 函数putimage 实现。
三、应用实例以下是一个简单的 HALCON region 灰度排序应用实例:1.读取图像:调用函数 readimage,输入图像文件路径,得到图像句柄 image1。
2.转换为灰度图像:调用函数 rgb1togray,输入图像句柄 image1,得到灰度图像句柄 grayimage。
3.阈值处理:调用函数 threshold,输入灰度图像句柄 grayimage,设置阈值 18,得到二值图像句柄 binaryimage。
halcon四个顶点坐标排序
![halcon四个顶点坐标排序](https://img.taocdn.com/s3/m/7e9bec4fba68a98271fe910ef12d2af90242a8fc.png)
halcon四个顶点坐标排序摘要:1.引言2.Halcon四个顶点坐标排序的背景和意义3.Halcon四个顶点坐标排序的方法和步骤4.实例演示5.总结正文:Halcon是一种常用的机器视觉开发软件,它提供了丰富的图像处理和分析功能。
在实际应用中,我们常常需要对图像中的四个顶点坐标进行排序,以满足特定算法或功能的需求。
本篇文章将详细介绍Halcon四个顶点坐标排序的方法和步骤。
首先,我们需要了解Halcon四个顶点坐标排序的背景和意义。
在机器视觉领域,对四个顶点坐标进行排序可以帮助我们更好地处理和分析图像,例如在目标检测、识别和跟踪等任务中,需要根据四个顶点坐标对目标进行定位和描述。
此外,排序后的四个顶点坐标可以简化图像处理算法,提高算法的执行效率。
接下来,我们将介绍Halcon四个顶点坐标排序的方法和步骤。
整个过程可以分为以下几个部分:1.读取图像并进行预处理:使用Halcon的ReadImage函数读取图像,然后通过一系列图像处理操作对图像进行预处理,例如平滑、阈值处理等,以便更好地提取四个顶点坐标。
2.提取四个顶点坐标:使用Halcon的FindCorners函数提取图像中的四个顶点坐标。
这个函数可以根据用户设定的参数,如极值、阈值等,找到图像中满足条件的角点。
3.排序四个顶点坐标:使用Halcon的Sort function对提取到的四个顶点坐标进行排序。
排序可以根据用户设定的规则进行,例如按照横坐标或纵坐标进行升序或降序排列。
4.实例演示:为了更好地理解上述方法,我们提供一个实例演示。
假设我们有一张如下所示的图像:```1 1 11 1 11 1 11 1 1```假设我们使用以下代码对图像进行处理:```halconread_image (Image, "path/to/image")threshold (Image, Region, 128, 255)find_corners (Region, Corners)sort_function (Corners, "y", "asc")```执行以上代码后,我们可以得到按照纵坐标升序排列的四个顶点坐标。
halcon-sort_region区域排序
![halcon-sort_region区域排序](https://img.taocdn.com/s3/m/173dcd0eb6360b4c2e3f5727a5e9856a56122688.png)
halcon-sort_region区域排序在HDevelop中read_image (Image, 'D:/bb/tu/4.jpg')rgb1_to_gray(Image,Image1)threshold (Image1, Region,[80,87,206,195] , [90,100, 228,205])sort_region (Region, SortedRegions, 'first_point', 'true', 'row')*区域排序*参数1:原区域*参数2:排序后的区域*参数3:排序模式* 'first_point':按照第⼀个点排序:⼀个区域的第⼀⾏的最前⾯的点* 'last_point':按照最后⼀个点排序:⼀个区域的最后⼀⾏最后⼀列的那个点* 'upper_left':外接矩形的左上⾓* 'upper_right':外接矩形的右上⾓* 'lower_left':外接矩形的左下⾓* 'lower_right':外接矩形的右下⾓* 'character'从左到右,从上到下的顺序*参数4:确定排列顺序是递增的还是递减的。
'true':递增;'false':递减*参数5:输⼊参数,先按照⾏排列还是列排列在QtCreator中HObject ho_Image, ho_Image1, ho_Region, ho_SortedRegions;ReadImage(&ho_Image, "D:/bb/tu/4.jpg");Rgb1ToGray(ho_Image, &ho_Image1);Threshold(ho_Image1, &ho_Region, (((HTuple(80).Append(87)).Append(206)).Append(195)),(((HTuple(90).Append(100)).Append(228)).Append(205)));SortRegion(ho_Region, &ho_SortedRegions, "first_point", "true", "row");//区域排序//参数1:原区域//参数2:排序后的区域//参数3:排序模式// 'first_point':按照第⼀个点排序:⼀个区域的第⼀⾏的最前⾯的点// 'last_point':按照最后⼀个点排序:⼀个区域的最后⼀⾏最后⼀列的那个点// 'upper_left':外接矩形的左上⾓// 'upper_right':外接矩形的右上⾓// 'lower_left':外接矩形的左下⾓// 'lower_right':外接矩形的右下⾓// 'character' 从左到右,从上到下的顺序//参数4:确定排列顺序是递增的还是递减的。
HALCON算子函数Chapter14:Regions
![HALCON算子函数Chapter14:Regions](https://img.taocdn.com/s3/m/861c5ba0d5d8d15abe23482fb4daa58da0111c6f.png)
HALCON算子函数Chapter14:RegionsHALCON算子函數——Chapter 14 : Regions 14.1 Access1. get_region_chain功能:一個對象的輪廓(contour)作為鏈式碼。
2. get_region_contour功能:查詢一個目標的輪廓(contour)。
3. get_region_convex功能:查詢突起的外表作為輪廓(contour)。
4. get_region_points功能:查詢一個區域的像素數。
5. get_region_polygon功能:用一個多邊形近似獲取區域。
6. get_region_runs功能:查詢一個區域的掃描寬度編碼。
14.2 Creation1. gen_checker_region功能:創建一個方格式區域。
2. gen_circle功能:創建一個圓周。
3. gen_ellipse功能:創建一個橢圓。
4. gen_empty_region功能:創建一個空的區域。
5. gen_grid_region功能:根據行或像素數創建一個區域_。
6. gen_random_region 功能:創建一個隨機區域。
7. gen_random_regions功能:創建隨機區域如圓周,矩形和橢圓。
8. gen_rectangle1功能:創建一個與坐標軸平行的長方形。
9. gen_rectangle2功能:創建任意方向的矩形。
10. gen_region_contour_xld功能:從XLD元組中創建一個區域。
11. gen_region_histo 功能:將一個直方圖轉換為一個區域。
12. gen_region_hline 功能:將Hesse正規形狀中描述的輸入線存儲為區域。
13. gen_region_line功能:將輸入線以區域形式存儲。
14. gen_region_points功能:將個別的像素存儲為圖像區域。
15. gen_region_polygon功能:將一個多邊形存儲為一個目標圖像。
halcon命令中文注解
![halcon命令中文注解](https://img.taocdn.com/s3/m/a8dd6ef1f90f76c661371a0f.png)
read_image (WaferDies, 'wafer_dies')read_image (图片在程序中的名称, '图片在计算机中的名称')reopen_window_fit (WaferDies, 700, 0, 0, WindowHandle)reopen_window_fit (图片在程序中的名称, 700, 0, 0, WindowHandle)init_font (WindowHandle, -1, 2)和字体有关的一个命令get_window_extents (WindowHandle, _, _, WindowWidth, WindowHeight)设置窗口大小和位置dev_update_all ('off')把所有的dev_update从'on'设到'off',这似乎是设定文本显示的滚动与否dev_set_draw ('margin')定义区域填充模式。
如果DrawMode设置为'fill',输出地区被填满,如果设置为'margin',只有轮廓显示出来。
get_image_pointer1 (WaferDies, _, _, Width, Height)get_image_pointer1( Image : : : Pointer, Type, Width, Height )Access the pointer of a channel.The operator get_image_pointer1 returns a pointer to the first channel of the image Image. Additionally, the image type (Type= 'byte', 'int2', 'uint2', etc.) and the image size (width and height) are returned. Consequently, a direct access to the image data in the HALCON database via the pointer is possible from the programming language in which HALCON is used. An image is stored in HALCON linearized in row major order, i.e., line by line.指令get_image_pointer1返回一个图像WaferDies的第一通道的指针。
HALCON算子函数整理13-14 Object-Region
![HALCON算子函数整理13-14 Object-Region](https://img.taocdn.com/s3/m/ee812658312b3169a451a45b.png)
HALCON算子函数——Chapter 13 : Object 13.1 Information1. count_obj功能:统计一个元组中的对象。
2. get_channel_info功能:一幅目标图像组成部分的信息。
3. get_obj_class功能:一副目标图像类的名称。
4.test_equal_obj功能:比较目标图像的平等性。
5. test_obj_def功能:测试目标是否被删除。
13.2 Manipulation1. clear_obj功能:将一个对象的图标从HALCON数据库中删除。
2. concat_obj功能:连接两个目标元组的图标。
3. copy_obj功能:复制一个HALCON数据库中对象的图标_。
4. gen_empty_obj功能:创建一个空的目标元组。
5.integer_to_obj功能:将一个整型数转换为一个图标。
6. obj_to_integer功能:将一个图标转换为一个整型数。
7. select_obj功能:从一个目标元组中选择目标。
HALCON算子函数——Chapter 14 : Regions 14.1 Access1. get_region_chain功能:一个对象的轮廓(contour)作为链式码。
2. get_region_contour功能:查询一个目标的轮廓(contour)。
3. get_region_convex功能:查询突起的外表作为轮廓(contour)。
4. get_region_points功能:查询一个区域的像素数。
5. get_region_polygon功能:用一个多边形近似获取区域。
6. get_region_runs功能:查询一个区域的扫描宽度编码。
14.2 Creation1. gen_checker_region功能:创建一个方格式区域。
2. gen_circle功能:创建一个圆周。
3. gen_ellipse功能:创建一个椭圆。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Halcon中的sort_region函数用于对区域进行排序。
这个函数可以按照区域的不同属性对其进行排序,比如面积、周长等。
下面是对该函数的详解:
python
sorted_regions = sort_region(regions, 'attribute', 'order', 'subregion')
参数解释:
regions:待排序的区域,可以是单个区域或区域数组。
'attribute':排序所依据的属性,可以是以下之一:
'area':面积。
'row':区域中心的行坐标。
'column':区域中心的列坐标。
'height':区域的高度。
'width':区域的宽度。
'distance_to_origin':区域中心到原点的距离。
'radius':区域外接圆的半径。
'circularity':区域的圆度。
'convexity':区域的凸度。
'compactness':区域的紧密度。
'elongation':区域的伸长度。
'orientation':区域的方向。
'gray_moments':区域的灰度矩。
'order':排序的顺序,可以是以下之一:
'ascending':升序排列。
'descending':降序排列。
'subregion':一个可选参数,用于指定是否要在排序后返回排序结果的子区域。
默认为'all',表示返回所有区域。
如果设置为'first',则只返回排序后的第一个区域;如果设置为'last',则只返回排序后的最后一个区域。
函数返回排序后的区域数组。
需要注意的是,这个函数不会修改原始的区域数组,而是返回一个新的排序后的数组。
使用示例:
python
import halcon as hv
# 假设有一个名为regions的区域数组
sorted_regions = hv.sort_region(regions, 'area', 'descending')
这样,sorted_regions就是按照区域面积降序排列的新区域数组。