Halcon算子介绍.docx_第1页
Halcon算子介绍.docx_第2页
Halcon算子介绍.docx_第3页
Halcon算子介绍.docx_第4页
Halcon算子介绍.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图像、窗口基础操作部分基础操作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, #ffb529disp_message( : : WindowHandle, String, CoordSystem, Row, Column, Color, Box : )输出一段文字信息WindowHandle:要显示文字的窗口handleString:要显示的文字信息,会显示在一个行里CoordSystem:使用的坐标系,默认window,可选window, imageRow,Column:文字坐标,默认12Color:文字颜色,默认black,可选, black, blue, yellow, red, green, cyan, magenta, forest green, lime green, coral, slate blueBox:是否包含在一个背景框内,默认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:输出,计算后的结果。示例:* provides the region X without the points in Ydifference(X,Y,RegionDifference)RegionSubRegionDifferenceunion1(Region : RegionUnion : : )联合有连接性质的区域Region:输入的区域(比如connection过的区域数组)RegionUnion:输出,合并后的区域union2(Region1, Region2 : RegionUnion : : )把两个区域合并成一个区域Region1:要合并的第一个区域Region2:要合并的第二个区域RegionUnion:输出,合并后的区域complement(Region : RegionComplement : : )计算一个区域的补(一般指全图像区域减去该区域)Region:要计算的区域RegionComplement:输出,计算后的区域阈值分割threshold(Image : Region : MinGray, MaxGray : )详见:thresholdauto_threshold(Image : Regions : Sigma : )自动阈值分割bin_threshold(Image : Region : : )用于提取背景为白色,且前后北京较为分明;自动选取sigma值进行告诉光滑处理,光滑直到只有一个最小值;例如提取白纸黑字,可以用此算子;mage : 输入的图像Region:输出,分割后的区域char_threshold(Image, HistoRegion : Characters : 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 : )应用于分隔符号图像的阈值处理。通常伴随着如Diff_of_gauss,sub_image等这样的算子使用;就像前后两帧做差得到图像(差帧法),像素值有正值有负值。Image : 输入的图像RegionCrossings : 输出,获得的区域MinSize:输出的区域的最小面积MinGray:区域的最小灰度绝对值Threshold:分割值腐蚀膨胀erosion_circle(Region : RegionErosion : Radius : )使用圆心结构元素对图像做腐蚀操作Region:要做腐蚀操作的区域(也可以是区域数组)RegionDilation:输出,腐蚀后的区域(或区域数组)Radius:腐蚀操作的圆形结构的半径dilation_circle(Region : RegionDilation : Radius : )使用圆形结构对区域做膨胀操作Region:要做膨胀操作的区域(也可以是区域数组)RegionDilation:输出,膨胀后的区域(或区域数组)Radius:膨胀操作的圆形结构的半径erosion_rectangle1(Region : RegionErosion : Width, Height : )使用矩形结构元素对图像做腐蚀操作Region:要做腐蚀操作的区域(也可以是区域数组)RegionDilation:输出,腐蚀后的区域(或区域数组)Width,Height:腐蚀操作的矩形结构的宽和高dilation_rectangle1(Region : RegionDilation : Width, Height : )使用矩形结构元素对图像做膨胀操作Region:要做腐蚀操作的区域(也可以是区域数组)RegionDilation:输出,膨胀后的区域(或区域数组)Width,Height:膨胀操作的矩形结构的宽和高生成区域gen_rectangle2( : Rectangle : Row, Column, Phi, Length1, Length2 : )生成与坐标成任意角度的矩形Rectangle : 输出,生成后的矩形Row,Column:用于生成的矩形的中心坐标Phi:生成矩形与水平轴的角度,以弧度为单位Length1, Length2 :生成矩形的长宽的一半亚像素轮廓(XLD)部分基础操作threshold_sub_pix(Image : Border : Threshold : )提取图像的XLDImage:要提取xld的图像(单通道,如果为多通道只提取第一通道)Border:输出,得到的XLDThreshold:提取XLD的阈值,灰度值以阈值为分界提取XLDgen_contour_region_xld(Regions : Contours : Mode : )从区域(区域数组)生成亚像素轮廓Regions:要生成亚像素轮廓的区域(或区域数组)Contours:输出,生成后的亚像素轮廓Mode:生成方式,默认border,可输入范围区域:border, border_holes, centerselect_shape_xld(XLD : SelectedXLD : Features, Operation, Min, Max : )选择特定形状特征要求的XLD轮廓或多边形XLD:输入,要提取的XLDSelectedXLD:输出,提取得到的XLDFeatures:提取XLD的特征依据,默认为area,详见特征依据说明Operation:特征之间的逻辑关系,默认andMin,Max:特征值的要求范围select_contours_xld(Contours : SelectedContours : Feature, Min1, Max1, Min2, Max2 : )选择多种特征要求的XLD轮廓(如长度开闭等,不支持多边形)Contours:要提取的XLD轮廓SelectedContours:输出,提取得到的XLD轮廓Feature:提取的特征依据,详见特征依据说明Min1, Max,Min2,Max2:特征值的要求范围area_center_xld(XLD : : : Area, Row, Column, PointOrder)获取封闭的亚像素轮廓(或轮廓数组)的面积和重心坐标XLD:输入的亚像素轮廓(或轮廓数组)Area:输出,亚像素轮廓的面积Row:输出,轮廓的重心的row坐标Column:输出,轮廓的重心的column坐标PointOrder: 输出,沿边界点顺序,正向或者反向转换操作shape_trans_xld(XLD : XLDTrans : Type : )将目标轮廓(或轮廓数组)转化成其他形状XLD:要转化的XLD(或XLD数组)XLDTrans:输出,转化后的XLD(或数组)Type:转化的类型,默认convex,详见XLD轮廓的转化类型说明分割segment_contours_xld(Contours : ContoursSplit : Mode, SmoothCont, MaxLineDist1, MaxLineDist2 : )把原XLD分割成:“直线”,“直线和圆”,“直线和椭圆”Contours:需要被分割的轮廓(或数组)ContoursSplit:输出,分割后的轮廓数组Mode:分割模式,默认lines_circles,可选lines, lines_circles, lines_ellipsesSmoothCont:用于平滑轮廓的点数量MaxLineDist1:轮廓到近似线的最大距离(第一次迭代)MaxLineDist2:轮廓到近似线的最大距离(第二次迭代)拟合操作(未完)fit_line_contour_xld(Contours : : Algorithm, MaxNumPoints, ClippingEndPoints, Iterations, ClippingFactor : RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist)根据已知轮廓拟合直线,获得的是直线的参数Contours:输入的轮廓Algorithm:拟合算法,默认tukey,可选regression, huber, tukey, gauss, drop,详见轮廓拟合算法说明轮廓拟合算法说明MaxNumPoints:用于计算的轮廓点的最大数目(-1为所有点),默认-1ClippingEndPoints:起始和结尾上忽略的点数,默认0Iterations:迭代最大次数(不用于回归?)ClippingFactor:离群值的剪切因子,值越小忽略的离群值越多RowBegin,ColBegin:拟合后得到的直线开始点坐标RowEnd,ColEnd:拟合后得到的直线结束点坐标Nr,Nc:直线的法向量Dist:原点到直线的距离fit_circle_contour_xld(Contours : : Algorithm, MaxNumPoints, MaxClosureDist, ClippingEndPoints, Iterations, ClippingFactor : Row, Column, Radius, StartPhi, EndPhi, PointOrder)根据已知轮廓来拟合圆,并获得圆参数Contours:输入的轮廓Algorithm:拟合算法,默认algebraic,可选 algebraic, ahuber, atukey, geometric, geohuber, geotukey,详见轮廓拟合算法说明轮廓拟合算法说明MaxNumPoints:用于计算的轮廓点的最大数目(-1为所有点),默认-1MaxClosureDist:小于这个值被认为是轮廓封闭的,区分拟合圆和圆弧ClippingEndPoints:轮廓开始点和结束点参加与拟合点的个数(起始和结尾上忽略的点数?),默认0Iterations:迭代次数ClippingFactor:离群值的剪切因子,值越小忽略的离群值越多Row, Column:圆心坐标Radius:圆半径StartPhi, EndPhi:圆弧开始角度,结束角度PointOrder:边界点的次序fit_ellipse_contour_xld(Contours : : Algorithm, MaxNumPoints, MaxClosureDist, ClippingEndPoints, VossTabSize, Iterations, ClippingFactor : Row, Column, Phi, Radius1, Radius2, StartPhi, EndPhi, PointOrder)拟合椭圆fit_rectangle2_contour_xld(Contours : : Algorithm, MaxNumPoints, MaxClosureDist, ClippingEndPoints, Iterations, ClippingFactor : Row, Column, Phi, Length1, Length2, PointOrder)拟合矩形测量基础操作gen_measure_rectangle2( : : Row, Column, Phi, Length1, Length2, Width, Height, Interpolation : MeasureHandle)创建一个任意方向的矩形测量句柄(区域)Row, Column:矩形中心点坐标Phi:矩形主轴方向与水平轴夹角Length1:矩形宽度一半Length2:矩形高度一半Width, Height:处理图像的宽,高Interpolation:插值方法MeasureHandle:测量句柄附:Halcon的图像像素类型Halcon中的像素类型有如下(首字母应当为小写):Int1Int2Uint2Int4Int8Byte:最常见的灰度图像,8位,一个字节,0255RealDirectionCyclicComplex特征依据说明以下是一些可选的条件特征说明(代码中首字母应该为小写):Area:区域大小,应该是以像素为单位Row:区域中心的row坐标Column:区域中心的column坐标Width:区域的宽度Height:区域的高度Row1:区域的起始row坐标(顶部)Column1:区域的起始column坐标(左侧)Row2:区域的最终row坐标(底部)Column2:区域的最终column坐标(右侧)Circularity:区域的圆度Compactness:区域的紧密度Contlength:区域外轮廓的总长度Convexity:区域的凸性Rectangularity:区域的垂直度Ra:等效椭圆的长轴半径Rb:等效椭圆的短轴半径Phi:等效椭圆的方向Anisometry:椭圆参数,Ra/Rb长轴与短轴的比值Bulkiness:椭圆参数,蓬松度*Ra*Rb/Astruct_factor:椭圆参数,Anisometry*Bulkiness-1outer_radius:最小外接圆半径inner_radius:最大内接圆半径inner_width:最大内接矩形宽度inner_height:最大内接矩形高度dist_mean:区域边界到中心的平均距离dist_deviation:区域边界到中心距离的偏差roundness

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论