图像、窗口基础操作部分基础操作dev_close_window()关闭当前激活的窗口read_image(:Image::)读取图像,可以支持多种格式,比如TIFF,PNG,JPEG-XR,JPEG-2000等,还支持一次性读取多个图像。Image:输出,读取完后在halcon所存放的变量名:图片路径,可以是多个路径,可以是绝对路径或者相对路径,还可以省略扩展名示例:*Readinganimage:read_image(Image,'mreut')*Reading3imagesintoanimagearray: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','forestgreen','limegreen','coral','slateblue'Box:是否包含在一个背景框内,默认'true',可选'true','false'基础语法If(‘condition’)…else…endif条件判断While(‘condition’)…endwhileWhile循环forIndex:=‘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:输出,计算后的结果。示例:*providestheregionXwithoutthepointsinYdifference(X,Y,RegionDifference)union1(Region:RegionUnion::)联合有连接性质的区域Region:输入的区域(比如connection过的区域数组)RegionUnion:输出,合并后的区域union2(Region1,Region2:RegionUnion::)把两个区域合并成一个区域Region1:要合并的第一个区域Region2:要合并的第二个区域RegionUnion:输出,合并后的区域complement(Region:RegionComplement::)计算一个区域的补(一般指全图像区域减去该区域)Region:要计算的区域RegionComplement:输出,计算后的区域RegionSubRegionDifference阈值分割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:M