收藏 分销(赏)

4-halcon简介教学课件.pptx

上传人:快乐****生活 文档编号:11421972 上传时间:2025-07-23 格式:PPTX 页数:32 大小:1.29MB 下载积分:12 金币
下载 相关 举报
4-halcon简介教学课件.pptx_第1页
第1页 / 共32页
4-halcon简介教学课件.pptx_第2页
第2页 / 共32页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2021/3/11 Thursday,#,Institute of Robotics and Automatic Information System,Click to edit the title text format,机器人与信息自动化研究所,Institute of Robotics&Automatic Information System,Institute of Robotics and Automatic Information System,Click to edit the title text format,单击此处编辑母版标题样式,2021/3/11 Thursday,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,/,机器视觉及应用,第四章,halcon,简介,Halcon,介绍,主要内容,界面认识,菜单栏,工具栏,子窗口,Halcon,数据类型,Image,图像,Region,区域,XLD,轮廓,Tuple,元组,Halcon,机器视觉程序示例,Halcon,控制语句,If,条件语句,While,循环语句,For,循环语句,Switch,分支语句,中断语句,halcon,是,德国,慕尼黑,MVTec,公司开发的机器视觉软件,。,1996,年,成立至今,,只关注于机器视觉算法与软件的研究与开发,是,世界知名的视觉软件,开发,公司,。,halcon,源自学术界,它是由,一千多个各自独立的函数,,以及底层的数据管理核心构成的一套图像处理,库,。,halcon,中这些图像处理函数称为,算子,。只要,用得到图像处理的地方,就可以用,halcon,提供的算子进行处理,。,Halcon,的应用涵盖了几乎,所有范围,,包括常见的工业应用,也包括医学,遥感探测,监控等各方面的应用。,Halcon,介绍,halcon,界面,认识,halcon,的,数据类型,Image,是,halcon,中用于表示,图像,的,数据,类型。,Image,对应各种格式的图像,如,BMP,、,JPG,、,PNG,、,TIFF,等,也可以直接从相机获取图像数据,。,有,三种打开方式,。,第一,种,,选择“文件”,菜单的“读取图像”菜单,;,第二,种,直接利用,算子,read_image,读取图像,;,第三,种,利用,图像获取助手,打开图像,。,halcon,的,Image,图像,halcon,的,数据类型,例,读取,Image,图像数据并获取图像信息以及通道分解、合并、彩色模式转换、灰度图转换等操作。,*,打开图像文件,read_image(Image,E:/,示例,/,例,4-1.bmp),*,得到图像的宽高信息,get_image_size(Image,Width,Height),*,得到图像的数据类型,get_image_type(Image,Type),*,得到图像的通道数,结果在控制变量,Channels,中,count_channels(Image,Channels),*,将彩色图像分解为多个单通道图像,decompose3(Image,ImageR,ImageG,ImageB,),halcon,的,Image,图像,halcon,的,数据类型,*,打开图像文件,read_image(Image,E:/,示例,/,例,4-1.bmp),*,得到图像的宽高信息,get_image_size(Image,Width,Height),*,得到图像的数据类型,get_image_type(Image,Type),*,得到图像的通道数,结果在控制变量,Channels,中,count_channels(Image,Channels),*,将彩色图像分解为多个单通道图像,decompose3(Image,ImageR,ImageG,ImageB),*,将多个单通道图像合并为一个多通道图像,compose3(ImageR,ImageG,ImageB,MultiChannelImage,),halcon,的,Image,图像,halcon,的,数据类型,*,将,RGB,图像转换成,hsv,制式图像,trans_from_rgb(ImageR,ImageG,ImageB,ImageH,ImageS,ImageV,hsv),*,将,hsv,制式的三个单通道图,H,、,S,、,V,转成,RGB,格式的,R,、,G,、,B,trans_to_rgb(ImageH,ImageS,ImageV,R,G,B,hsv),*,将三个单通道的,R,、,G,、,B,图像合并为一个多通道图像,compose3(R,G,B,MultiChannelImage1),*,从一个多通道图像转换成灰度图像,rgb1_to_gray(MultiChannelImage1,GrayImage),*,将三个单通道图像,R,、,G,、,B,转成一个灰度图像,rgb3_to_gray(R,G,B,ImageGray1),halcon,的,Image,图像,halcon,的,数据类型,halcon,的,Image,图像,halcon,的,数据类型,halcon,中,用,Region,来表示图像中的某个,区域,。,Region,可以通过,交互式绘制,得到,也可以通过图像处理算法,自动生成,。如二值化算法、区域分割算法等,。,图像,生成,Region,之后,可以只对,Region,部分包含的图像数据进行处理。在,halcon,中,用类似于游程编码的方式来表示,Region,。,Region,区域,halcon,的,数据类型,Region,是一个,几何形状,,如点、直线、矩形、圆、椭圆以及任意形状,等,。,绘制,的,Region,几何形状的边界可以,超越图像边界,,但是生成,Region,之后超过图像边界部分自动忽略,。,Region,之间可以进行,交集、并集、补集,等操作,每个,Region,区域是用户自定义的或算法自动生成的图像中的连通域。每个,Region,代表一幅图像中的某块子图像。,Region,区域,halcon,的,数据类型,Region,附带多种,图像特征信息,,可以通过统计每个,Region,特征信息实现对不同,Region,的区分。,Region,区域,halcon,的,数据类型,例,对,Region,进行操作示意。,*,读取图像,read_image(Image,E:/,示例,/,例,4-3.bmp),*,得到图像大小,get_image_size(Image,Width,Height),*,对图像进行二值化处理,得到,Region,threshold(Image,Regions,111,255),*,得到,Rgions,中的每个联通,Region,connection(Regions,ConnectedRegions),*,根据每个,Region,的面积大小筛选,Region,select_shape(ConnectedRegions,SelectedRegions,area,and,23526.9,50000,),Region,区域,halcon,的,数据类型,*,将筛选出来的每个,Region,组合成一个,Region,union1(SelectedRegions,RegionUnion),*,根据组合后的,Region,从原图像中取出,Region,包含的图像,reduce_domain(Image,RegionUnion,ImageReduced),*,得到,Region,包含的图像的大小,该大小与原图像一样大,get_image_size(ImageReduced,Width1,Height1),*,将,Region,包含的图像从原图像中单独取出来作为一幅独立的图像,crop_domain(ImageReduced,ImagePart),*,得到取出的图像的大小,该图像大小与原图像不相同,get_image_size(ImagePart,Width2,Height2),*,组合后的,Region,再次分解为每个连通域,Region,connection(RegionUnion,ConnectedRegions1),Region,区域,halcon,的,数据类型,*,统计每个连通域,Region,的面积和中心位置,area_center(ConnectedRegions1,Area,Row,Column),Region,区域,halcon,的,数据类型,可以将,XLD,理解为图像中某个,区域的轮廓,。,轮廓,是不同区域之间的,边界,。,通过,对轮廓的不同特征的统计,可以区分图像中不同的区域,。,XLD,代表亚像素精度的轮廓,。,亚,像素精度是指相邻两像素之间的细分情况,通常为二分之一,三分之一或四分之一,这意味着每个像素将被分为更小的单元从而对这些更小的单元实施插值算法。因此,,XLD,代表的不是图像中每个像素点,,而是亚像素精度的点集,。采用亚像素精度表示提高了轮廓表达的精度。,XLD,轮廓,halcon,的,数据类型,与,Region,类似,,XLD,也附带了多种特征,可以利用这些特征信息实现对图像中不同区域的分割。,XLD,的特征分为四类:,基本特征、形状特征、点特征和矩特征,。,XLD,轮廓,halcon,的,数据类型,例,4-4,对,XLD,进行操作示意,*,读取图像,read_image(Image,E:/,示例,/,例,4-4.bmp),*,以亚像素精度从图像中提取水平交叉点作为,XLD,轮廓边界,threshold_sub_pix(Image,Border,128),*,计算轮廓边界的面积和中心中心,area_center_xld(Border,Area,Row,Column,PointOrder),*,利用,XLD,的面积特征刷选轮廓,select_shape_xld(Border,SelectedXLD,area,and,25000,100000),*,利用,XLD,的等效椭圆方向刷选轮廓,select_shape_xld(SelectedXLD,SelectedXLD1,phi,and,0.8519,2),XLD,轮廓,halcon,的,数据类型,*,从,XLD,轮廓生成,Region,gen_region_contour_xld(SelectedXLD1,Region,filled),*,从,Region,生成,XLD,轮廓,gen_contour_region_xld(Region,Contours,border),*,计算,XLD,轮廓的面积和中心,area_center_xld(SelectedXLD1,Area1,Row1,Column1,PointOrder1),XLD,轮廓,halcon,的,数据类型,Halcon,中的,Tuple,元组与其他语言如,C,语言中的数组类似,。,可以,直接将,Tuple,理解为,数组,。其数据类型可以是,int,、,string,等各种类型,。,Tuple,元组的索引值,从,0,开始,,最后一个索引是,Tuple,的长度减去,1,。,Tuple,有,多个操作函数,。包括基本的数学运算、指数与对数运算、字符串运算、三角函数运算、位运算、比较运算等。,Tuple,元组,halcon,的,数据类型,例,Tuple,基本操作,*,定义一个空元组,Tuple1:=,*,将一个,Tuple,元组赋值给变量,Tuple1:=1,2,3,4,5,6,7,8,9,*,给,Tuple,元组指定元素赋值,Tuple11:=0,*,批量改变元组元素的值,Tuple11,3,5:=hello,*,批量给,Tuple,元组赋值,其值为,0,到,100,连续数值,Tuple2:=0:100,*,批量给,Tuple,元组赋值,其值为,1,到,100,连续数值,步长为,2,Tuple3:=1:2:100,Tuple,元组,halcon,的,数据类型,Tuple4,:=100:-10:-100,*,对两个,Tuple,元组进行合并操作,TupleInt1:=1,2,3,4,5,TupleInt2:=6,7,8,9,10,tuple_union(TupleInt1,TupleInt2,UnionInt),*,对两个,Tuple,元组进行交集操作,TupleInt3:=1,2,3,4,5,TupleInt4:=3,4,5,6,7,tuple_intersection(TupleInt3,TupleInt4,IntersectionInt,),Tuple,元组,halcon,的,数据类型,*,对,Tuple,元组元素进行替换,OriginalTuple:=0,1,2,3,4,5,tuple_replace(OriginalTuple,0,1,x,y,Replaced),*,向,Tuple,元组插入数值,OriginalTuple:=0,1,2,3,4,5,tuple_insert(OriginalTuple,3,x,InsertSingleValueA),Tuple,元组,if,条件语句,(,1,),if,(表达式),满足,if,条件后执行的语句,endif,(,2,),if,(表达式),满足,if,条件后执行的语句,else,不满足,if,条件后执行的语句,endif,halcon,控制语句,(,3,),if,(表达式),满足,if,条件后执行的语句,elseif,不满足,if,条件后执行的语句,else,不满,足以上条件后执行的语句,endif,while,循环,语句,while,(条件),循环,语句,Endwhile,halcon,控制语句,例,while,循环语句示意,计算从,1,到,100,的累加和。,*,定义初始值,a,等于,1,,,thesun,等于,0,a:=1,theSum:=0,*while,循环,While(a=100),theSum:=theSum+a,a:=a+1,endwhile,for,循环,语句,for(index:=start to end by step),循环体,endfor,halcon,控制语句,例,利用,for,循环计算从,1,到,100,的累加和。,theSum:=0,for Index:=1 to 100 by 1,theSum:=theSum+Index,endfor,switch,分支条件,语句,switch,(条件),case,常量表达式,1,:,执行语句,1,break,case,常量表达式,2,:,执行语句,2,break,case,常量表达式,n,:,执行语句,n,break,default:,执行语句,Endswitch,halcon,控制语句,例,switch,语句使用示意。,a:=2,switch(a),case 2:,b:=1,break,case 1:,b:=0,break,case 0:,b:=-1,break,default:,b:=-2,endswitch,中断,语句,在,halcon,中,中断语句有两种,一种是,continue,,另一种是,break,。,continue,用于跳出当前循环体余下的语句执行下一次循环;,break,用于跳出当前循环,或,switch,分支。,halcon,控制语句,例,continue,和,break,使用示意。,theSum:=0,for Index:=1 to 10 by 1,if(Index=5),continue,elseif(Index=8),break,endif,theSum:=theSum+Index,endfor,第一个机器视觉,例子,例,提取,回形针的位置和方向,*,读取图像,read_image(Clip,E:/,示例,/clip.png),*,设置颜色,dev_set_color(green),*,一种二值化算法,分割出回形针与背景,binary_threshold(Clip,Dark,max_separability,dark,UsedThreshold),*,提取每个连通域,connection(Dark,Single),*,根据面积大小过滤无关部分,只保留回形针区域,select_shape(Single,Selected,area,and,5000,10000,),第一个机器视觉,例子,*,计算每个回形针的方向,orientation_region(Selected,Phi),*,计算每个回形针的面积大小和位置,area_center(Selected,Area,Row,Column),*,设置显示样式如线宽、填充样式等,dev_set_line_width(3),dev_set_draw(margin),Length:=80,*,得到窗体句柄,dev_get_window(WindowID),*,在窗体上指定位置显示箭头,disp_arrow(WindowID,Row,Column,Row-Length*sin(Phi),Column+Length*cos(Phi),4,),第一个机器视觉,例子,*,在窗体上显示每个回形针的角度,disp_message(WindowID,deg(Phi)$3.1f+deg,image,Row,Column-100,black,false),(,a,)原图,(,b,)图像显示检测结果,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服