收藏 分销(赏)

12-机器视觉应用实例分析教学课件.pptx

上传人:精**** 文档编号:6267302 上传时间:2024-12-04 格式:PPTX 页数:29 大小:3.99MB 下载积分:10 金币
下载 相关 举报
12-机器视觉应用实例分析教学课件.pptx_第1页
第1页 / 共29页
12-机器视觉应用实例分析教学课件.pptx_第2页
第2页 / 共29页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2021/12/9 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/12/9 Thursday,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,/,机器视觉及应用,第十二章,机器视觉应用实例分析,主要内容,布料瑕疵检测,点阵字符分割与识别,Halcon,与,c#,混合编程,镜片自动分拣,1,、,在食品饮料行业,包装材料上需要打印生产日期等字符信息。尽管目前已经有不少企业采用激光打印可以得到更清晰的字符。但是,还存在大量采用传统的点阵字符喷码机进行字符打印。在打印过程中,由于喷码机、传送带、产品位置等都可能出现不可避免的故障,导致打印出来的字符存在各种缺陷。例如,喷码机的喷头出现油墨堵塞导致字符不清晰,传送带速度发生变化导致字符打印位置偏差,产品位置变动导致没有打印上字符等。生产日期是产品重要的标识,必须严格保证每个产品上的生产日期清晰可见。因此,需要对其进行检测。,点阵字符分割与识别,2,、,该应用所使用的算法主要有二值化算法、形态学算法和分类识别算法。分类识别算法属于机器学习算法。作为数字图像处理中比较高级的,算法。,在此示例中,将简单介绍其原理以及应用方法。,点阵字符分割与识别,3,、具体识别过程,。,(,1,)确定字符区域,点阵字符分割与识别,采用二值化算法对字符区域进行定位,为了避免光照变化的影响,采用动态阈值对其进行阈值分割。然后对分割后的区域进行区域闭运算操作,闭运算的结构元素可以选择比较大的圆形结构。由此可以将字符区域进行连通,再通过面积和高度特征对连通区域进行过滤,由此得到完整的字符区域。,3,、具体识别过程,。,(,2,)分割单个字符确定字符区域,点阵字符分割与识别,首先通过动态阈值算法分割出字符区域;然后,利用闭运算将单个字符进行连通。采用比较小的结构元素进行闭,运算,。,3,、具体识别过程,。,(,3,)对分割字符进行排序,点阵字符分割与识别,字符分割之后,需要保证每个字符区域都按照图中所示顺序排列,需要对字符进行排序,这样是为了保证训练的结果与每个区域一一对应。,对于图像中的字符区域,可以采用最小包围矩形区域的坐标来进行排序。采用此种方式排序,需要满足字符区域都处于水平位置。如果字符与水平线之间的角度较小,即使字符有一定的倾斜角度,也不会影响排序结果。如果角度比较大,需要对其进行倾斜校正后再排序。,3,、具体识别过程,。,(,4,)字符训练与识别,点阵字符分割与识别,在所有的识别中,首先需要对识别的对象进行训练。训练相当于人类的,学习过程,,对于计算机而言,只有学习过的对象,才能够在下次遇到的时候进行识别。训练本质是将某个对象进行一种独特的表示。这种表示通常是一个向量,里面包含了各种数字。,在进行识别时,通过判断待识别对象与训练中的每个对象的相似度,选择最相似的作为识别结果,。训练,出来的结果如果唯一性比较好,识别的结果也会比较好。在此过程中,需要保证有足够的训练的对象,否则将出现欠拟合的情况,但是训练对象过多,又可能出现过拟合的情况。因此,需要选择合适的训练数量,3,、具体识别过程,。,(,4,)字符训练与识别,点阵字符分割与识别,在本实例中,采用的是支持向量机(,SVM,,,Support Vector Machine,)的方式实现的训练和,识别,。,具体的示例代码如例,12-1,所示。,识别结果,镜片自动分拣,1,、提取凹面镜片区域,采用动态阈值或局部阈值进行分割,空洞填充、连通域,过滤取凹面镜片,镜片自动分拣,2,中心位置查找,提取区域的边界轮廓,然后根据轮廓拟合圆的方式,实现,查找中心位置,具体代码实现请见例,12-2,布料瑕疵检测,布料,在生产过程中,不可避免会产生各种污染,由此在布料上留下瑕疵,瑕疵的存在影响布料的美观。在生产过程中,需要将布料中的瑕疵检测出来。,布料瑕疵检测,彩色图像分解,第一通道图像,第二通道图像,第三通道图像,灰度化图像,彩色图像,分解,后的图与直接灰度化的图,布料瑕疵检测,瑕疵区域提取,瑕疵区域提取结果,相减结果,固定阈值分割结果,具体代码请见例,12-3,Halcon,与,c#,混合编程,1,、,图像处理,算法,导出,在,halcon,中选择菜单“文件”,-,“导出”。,出现,导出,对话框,。在该对话框中第二行选择导出的类型,第一行选择导出的文件路径并命名导出文件的名称。在“导出范围”中选择“程序”,在“函数属性”中将所有框都选中,在“窗口导出”中选择“使用导出模板”,在“编码”中选择“原始”。然后点击“导出”按钮。将会在指定路径下生成该文件。由此完成图像处理算法的导出。,Halcon,与,c#,混合编程,1,、,图像处理,算法,导出,halcon,算法导出界面,Halcon,与,c#,混合编程,2,、系统设计与算法集成,打开,visual studio 2015,,选择“新建项目”,Halcon,与,c#,混合编程,2,、系统设计与算法集成,选择,c#,项目,中间的对话框中选择“,windows,窗体应用程序”,在下面的名称栏输入项目名称,Halcon,与,c#,混合编程,2,、系统设计与算法集成,在的,“解决方案资源管理器”中,鼠标右键选择“引用”,点击添加应用,点击“浏览”,选择,halcon,安装目录中的,halcondotnet.dll,文件,Halcon,与,c#,混合编程,2,、系统设计与算法集成,在,图中,,用鼠标右键选择“指针”,然后选择“选择项”,,在,对话框中选择顶部的“,.NET Framework,组件”,然后点击“浏览”按钮,,选择,halcondotnet.dll,文件,,出现两,个打“,”的组件,此组件是,halcon,用于图像显示的组件,点击“确定”完成,将会在工具箱中添加两个控件,。,Halcon,与,c#,混合编程,2,、系统设计与算法集成,在,下,图所,示位置,选择配置管理器,弹,出配置管理,器。,选择“活动解决方案平台”中的“,AnyCPU,”下拉框,选择“新建”,出现新建解决方案平台,选择,x64,。点击“确定”按钮,完成项目平台配置,。,具体是,x86,还是,x64,,根据安装的,halcon,来确定。本例中选择,x64,Halcon,与,c#,混合编程,2,、系统设计与算法集成,在,halcon,的安装目录中,找到,halcon.dll,文件,,,将,halcon.dll,文件复制到项目文件中,Halcon,与,c#,混合编程,2,、系统设计与算法集成,鼠标右键选择项目“,test,”,然后选择“添加”,-,“添加现有项”,如图,12.22,所示,选择导出的,charNum.cs,文件,将该文件加入到项目中。至此,项目的准备工作完成。,Halcon,与,c#,混合编程,2,、系统设计与算法集成,项目的界面设计,结果,(控件设计),控件类型,控件名称,控件,text,属性,hWindowControl,hWindowControl1,hWindowControl1,label,label1,低阈值,TextBox,tb_lowThr,0,label,Label2,高阈值,TextBox,tb_highThr,255,label,Label3,目标字符数量,TextBox,tb_targetCharNum,30,Button,bn_openImage,打开图像,Button,bn_test,测试,Label1,Label4,测试结果,TextBox,tb_result,Halcon,与,c#,混合编程,2,、系统设计与算法集成,项目的界面设计,结果,(,界面,设计),Halcon,与,c#,混合编程,2,、系统设计与算法集成,双击解决方案资源管理中的,charNum.cs,文件,可以看到这是从,halcon,中导出的算法程序。在这个程序中,有三个函数,分别是,action,、,InitHalcon,和,RunHalcon,函数。其中的,action,函数是,halcon,设计的图像处理过程,,RunHalcon,函数调用,action,函数来执行图像处理过程,如果在主窗体的“测试”按钮中调用,RunHalcon,函数,传入正确的参数,即可完成整个图像处理过程。此外,也可以在“测试”按钮直接调用,action,函数来完成图像处理过程。在本例中,直接从“测试”按钮调用,action,函数。由于需要将参数传入,action,函数中,因此,需要对,action,函数进行修改。修改完成的,action,函数如下所示。,public int action(HObject ho_Image,int lowThr,int highThr,ref HObject ho_ConnectedRegions),HObject ho_Regions;,HTuple hv_Number=new HTuple();,HOperatorSet.Threshold(ho_Image,out ho_Regions,lowThr,highThr);,HOperatorSet.Connection(ho_Regions,out ho_ConnectedRegions);,HOperatorSet.CountObj(ho_ConnectedRegions,out hv_Number);,return hv_Number;,Halcon,与,c#,混合编程,2,、系统设计与算法集成,双击设计界面上的“打开图像按钮”和“测试按钮”,打开,Form1.cs,的程序编辑界面,Halcon,与,c#,混合编程,2,、系统设计与算法集成,按照书上例子,,在,Form1.cs,中,完成,书中的,代码,,,程序运行,结果,如图:,
展开阅读全文

开通  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 

客服