一种裁床的位图轮廓坐标提取方法技术

技术编号:21630934 阅读:34 留言:0更新日期:2019-07-17 11:43
一种裁床的位图轮廓坐标提取方法,包括如下步骤:1)将设计位图灰度化;2)灰度图像二值化;3)将二值图像去噪,保证轮廓信息的正确性,避免噪音的干扰;4)使用Canny算子将去噪后的图像提取轮廓,得到切割轮廓的所有节点;5)初步剔除掉得到的轮廓中不需要进行切割的轮廓,并将确定为闭合轮廓的非闭合轮廓拼接起来;6)剔除掉轮廓中处在同一条直线上的冗余节点,在不影响切割效果的情况下提高了切割速度,重复步骤6),直至剔除掉所有的冗余节点;7)去除掉内轮廓中包含的轮廓,去除掉得到的所有轮廓中不需要切割的轮廓。本发明专利技术在极大程度上还原了原图的轮廓信息,保证了切割精度,并提高了切割的工作效率。

A Bitmap Contour Coordinate Extraction Method for Cutting Machine

【技术实现步骤摘要】
一种裁床的位图轮廓坐标提取方法
本专利技术属于图像中轮廓处理、提取领域,具体而言,涉及一种满足于高精度数控设备切割精度要求的图像轮廓坐标提取方法。
技术介绍
裁床是目前国内外各大小型工厂企业广泛使用的一种高精度数控机床。它具有加工速度快,精度高等特点。对于用户来说,只需要提供一份轮廓的坐标文件,就能切割出理想的图案。因此,裁床的出现对于各工厂企业来说,极大程度上降低了人工成本,减少了由于雕刻失误、雕刻误差大等造成的材料浪费。目前,大多数的裁床的加工文件采用的是DXF、PLT格式或者NetCDF文件。由设计人员使用绘图软件设计出具体图案,然后交由加工工人使用AutoCAD或者精雕软件生成矢量图文件。或者由加工工人直接使用AutoCAD或者精雕软件创建具有切割图案的轮廓组合的文件。DXF和PLT文件一般是使用AutoCAD或者精雕软件来创建,不过AutoCAD、精雕软件使用起来比较复杂,工厂企业要想正常高效地生产加工,就需要对加工工人进行额外的培训和指导。这样就大大的提高了加工成本,其次,由设计人员提供设计图稿,再由加工工人文件生成,最后开始切割加工。这其中时间成本太高,加工效率极低。
技术实现思路
为了克服现有裁床加工文件生成方式的时间成本太高、加工效率极低的不组装,本专利技术提出一种直接由设计图形生成裁床可识别的文件的裁床的位图轮廓坐标提取方法。为实现上述目的,本专利技术采取了以下的技术方案:一种裁床的位图轮廓坐标提取方法,包括如下步骤:1)将导入的位图进行灰度处理;2)将灰度图像进行二值化处理;3)将2)中处理得到的二值化图像进行中值滤波、开运算,去除图像的噪音干扰;4)将去噪后的图像使用Canny算子进行轮廓提取,得到图案的粗糙轮廓,所有的轮廓保存在vector<vector<Point>>Contours中;5)将得到的轮廓线进行筛选、拼接处理;6)筛选轮廓中关键节点;7)筛选内轮廓。遍历每条轮廓PointList,然后判断当前轮廓上的所有点与其他轮廓的位置关系,如果,满足有一条轮廓与当前轮廓上所有点的位置关系都是包含关系,则判断当前轮廓为内轮廓,并且将外轮廓计数变量OuterContour加1;当OuterContour计数超过3时,则判断当前为内轮廓中的内轮廓,删除当前轮廓,并进行7)重复操作。进一步,所述步骤5)中,将得到的轮廓线进行筛选、拼接处理的步骤如下:5.1)遍历所有的轮廓Contours,筛选出闭合轮廓并且面积小于阈值AreaThreshold的轮廓,和非闭合轮廓中周长大于LengthThreshold的轮廓;如果是前者,就将此轮廓从容器中删除;如果是后者,判定此轮廓可能是闭合轮廓的残缺轮廓,将这种残缺轮廓保存在vector<vector<Point>>IncomContours中,并删除Contours中这条轮廓的存储列表,进入下一步;5.2)遍历IncomContours,找到一条非闭合轮廓Contour1的端点TPointStart1和TPointEnd1,然后寻找一条满足有一个端点和这条轮廓端点距离小于阈值DisThresthold的轮廓Contour2;Contour2的端点为TPointStart2和TPointEnd2,进行步骤5.3);如果找不到Contour2,则判断Contour1是干扰轮廓,并删除Contour1,重复操作5.2);5.3)判断这两条轮廓的两端端点距离,如果同时满足小于阈值DisThresthold,则判断Contour1和Contour2是属于同一条闭合轮廓,将Contour2添加到Contour1列表,添加Contour2时,两条轮廓的相邻端点一一对应,删除Contour1列表,然后进行步骤5.2);否则,将Contour2和Contour1中端点距离大于阈值DisThresthold1的两个端点作为新的TPointStart1和TPointEnd1,重复步骤5.2);5.4)IncomContours中剩下的都是补全的闭合轮廓,将IncomContours添加到Contours中;再进一步,所述步骤6)中,筛选轮廓中关键节点的步骤如下:6.1)遍历闭合轮廓Contours,找到轮廓相邻三个节点,第一个节点为Point1(x1,y1),第二个节点是Point2(x2,y2),第三个节点是Point3(x3,y3);6.2)计算相邻节点构成的直线的表达式的斜率k和偏移量b,Point1(x1,y1)和Point2(x2,y2)构成的直线是y=k1x+b1,Point2(x2,y2)和Point3(x3,y3)构成的直线是y=k2x+b2。比较k1和k2,以及b1和b2之间的大小关系;6.3)如果0<|k1-k2|=SlopeDiff<RatioThresold并且0<|b1-b2|=Offset<OffsetThresold,则判断这三点基本处于一条直线上,然后采用最小二乘法拟合这三点构成的直线,计算出来的斜率为k,偏移量为b,累加斜率差SlopeDiff和偏移量OffSet,进行步骤6.4);若不能同时满足0<|k1-k2|=SlopeDiff<RatioThresold、0<|b1-b2|=Offset<OffsetThresold,则将Point2当成拐点保存下来,进行步骤6.5);6.4)如果SlopeDiff和Offset均在阈值Max范围之内,则删除中间点Point2(x2,y2),如果不能同时满足条件SlopeDiff和OffsetT均在阈值Max范围之内,则将中间点Point2(x2,y2)当成拐点保存下来,将SlopeDiff和OffsetT清零。进行下一步;6.5)找出Point3的后面一个点Point4(x4,y4),计算出Point3和Point4构成的直线的斜率k3和偏移量b3,进行操作6.2)。在所述步骤2)中,采用阈值法将图像二值化。所述步骤3)中,先后采用中值滤波、开运算滤波。所述步骤6)中,步骤6.3)中最小二乘法拟合出来的直线斜率和偏移量的计算公式如下所示:所述步骤7)中,采用根据判断是否是内轮廓中的内轮廓的方法来筛选干扰轮廓。本专利技术的技术构思为:通过中值滤波、引入开运算,剔除掉图像中的细小突出的噪音。用Canny算子得到图像上的所有轮廓,通过步骤5)的筛选和拼接,剔除掉图案上的所有小轮廓和非闭合轮廓,这些轮廓在生产中是不需要进行切割的。拼接是为了将轮廓提取过程中一些断开连接的闭合轮廓重新连接上。这样保存下来的就是裁床需要进行切割的轮廓形状。最后通过计算得出,相邻两点构成直线的斜率和偏移量,再通过比较相邻三点构成的直线的斜率和偏移量,判断这三个点是否基本处于同一条直线上。如果处于同一条直线上并且累加的斜率差和偏移量均在可接受范围之内,则删除中间点。否则,判定中间点是拐点,保留下来。通过设置阈值,可以达到不同的切割精度。本专利技术的有益效果主要表现在:1、能够筛选出裁床需要的切割轮廓,尽量避免手动筛选。2、能够保证切割精度,提取出位图的轮廓坐标信息。附图说明图1为需要进行切割的图形文件进行灰度化后的截图。图2为对JPG本文档来自技高网...

【技术保护点】
1.一种裁床的位图轮廓坐标提取方法,其特征在于,所述方法包括如下步骤:1)将导入的位图进行灰度处理;2)将灰度图像进行二值化处理;3)将2)中处理得到的二值化图像进行中值滤波、开运算,去除图像的噪音干扰;4)将去噪后的图像使用Canny算子进行轮廓提取,得到图案的粗糙轮廓,所有的轮廓保存在vector<vector<Point>>Contours中;5)将得到的轮廓线进行筛选、拼接处理;6)筛选轮廓中关键节点;7)筛选内轮廓,遍历每条轮廓PointList,然后判断当前轮廓上的所有点与其他轮廓的位置关系,如果,满足有一条轮廓与当前轮廓上所有点的位置关系都是包含关系,则判断当前轮廓为内轮廓,并且将外轮廓计数变量OuterContour加1;当OuterContour计数超过3时,则判断当前为内轮廓中的内轮廓,删除当前轮廓,并进行7)重复操作。

【技术特征摘要】
1.一种裁床的位图轮廓坐标提取方法,其特征在于,所述方法包括如下步骤:1)将导入的位图进行灰度处理;2)将灰度图像进行二值化处理;3)将2)中处理得到的二值化图像进行中值滤波、开运算,去除图像的噪音干扰;4)将去噪后的图像使用Canny算子进行轮廓提取,得到图案的粗糙轮廓,所有的轮廓保存在vector<vector<Point>>Contours中;5)将得到的轮廓线进行筛选、拼接处理;6)筛选轮廓中关键节点;7)筛选内轮廓,遍历每条轮廓PointList,然后判断当前轮廓上的所有点与其他轮廓的位置关系,如果,满足有一条轮廓与当前轮廓上所有点的位置关系都是包含关系,则判断当前轮廓为内轮廓,并且将外轮廓计数变量OuterContour加1;当OuterContour计数超过3时,则判断当前为内轮廓中的内轮廓,删除当前轮廓,并进行7)重复操作。2.如权利要求1所述的一种裁床的位图轮廓坐标提取方法,其特征在于,所述步骤5)中,将得到的轮廓线进行筛选、拼接处理的步骤如下:5.1)遍历所有的轮廓Contours,筛选出闭合轮廓并且面积小于阈值AreaThreshold的轮廓,和非闭合轮廓中周长大于LengthThreshold的轮廓;如果是前者,就将此轮廓从容器中删除;如果是后者,判定此轮廓可能是闭合轮廓的残缺轮廓,将这种残缺轮廓保存在vector<vector<Point>>IncomContours中,并删除Contours中这条轮廓的存储列表,进入下一步;5.2)遍历IncomContours,找到一条非闭合轮廓Contour1的端点TPointStart1和TPointEnd1,然后寻找一条满足有一个端点和这条轮廓端点距离小于阈值DisThresthold的轮廓Contour2;Contour2的端点为TPointStart2和TPointEnd2,进行步骤5.3);如果找不到Contour2,则判断Contour1是干扰轮廓,并删除Contour1,重复操作5.2);5.3)判断这两条轮廓的两端端点距离,如果同时满足小于阈值DisThresthold,则判断Contour1和Contour2是属于同一条闭合轮廓,将Contour2添加到Contour1列表,添加Contour2时,两条轮廓的相邻端点一一对应,删除Contour1列表,然后进行步骤5.2);否则,将Contour2和Contour1中端点距离大于阈值DisThresthold1的两个端点作为新的TPointStart1和TPointEnd1,重复步骤5.2);5...

【专利技术属性】
技术研发人员:董辉毛小海林文杰俞立张文安滕游
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1