CN113096147B - 一种基于matlab的激光标记阴影的自动生成方法 - Google Patents
一种基于matlab的激光标记阴影的自动生成方法 Download PDFInfo
- Publication number
- CN113096147B CN113096147B CN202110376152.1A CN202110376152A CN113096147B CN 113096147 B CN113096147 B CN 113096147B CN 202110376152 A CN202110376152 A CN 202110376152A CN 113096147 B CN113096147 B CN 113096147B
- Authority
- CN
- China
- Prior art keywords
- points
- contour
- boundary
- shadow
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000010330 laser marking Methods 0.000 title claims abstract description 30
- 230000006870 function Effects 0.000 claims description 20
- 238000013508 migration Methods 0.000 claims description 16
- 230000005012 migration Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 9
- 230000009191 jumping Effects 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 claims description 4
- 239000002131 composite material Substances 0.000 claims description 3
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 8
- 238000005520 cutting process Methods 0.000 description 3
- 238000003754 machining Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002845 discoloration Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000010329 laser etching Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000003121 nonmonotonic effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000009834 vaporization Methods 0.000 description 1
- 230000008016 vaporization Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/187—Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种基于MATLAB的激光标记阴影的自动生成方法,包括以下步骤:图形边缘数据的提取与插值处理,多边形等距偏移,建立多连通图案的等距等高线阴影填充模型,建立多连通图案的“之”字形阴影填充模型,基于等距等高线和“之”字形阴影填充方法,最终可以得到清晰、均匀、无间断点的多连通图形激光标记阴影填充。本发明构建了基于MATLAB的多连通图形等距等高线和“之”字形阴影填充方法,能够实现对多连通图形的高效、快速填充,解决了激光标记绘图程序可塑性差,计算速度慢,结果出现断点、误连、偏移次数过量等问题。
Description
技术领域
本发明属于激光标记技术领域,涉及一种基于MATLAB的激光标记阴影的自动生成方法,具体来说是根据线性插值后的多连通域图形的边界坐标集合,基于多边形等距偏移和等距平行线切割算法,在MATLAB上实现对任意多连通域图形的等高线和“之”字形阴影填充,并将该功能开源化。
背景技术
激光标记作为一种现代精密加工方法,常用于对模型或产品上文字,符号,图像等信息进行标注,与传统的腐蚀加工法和气动加工法相比,具有工件无接触,轨迹高精细,标记强耐久等优势,标记的过程中不会对环境产生污染。目前,激光标记技术已广泛用于各行各业,为优质、高效、无污染和低成本的现代加工生产开辟了广阔的前景。
激光标记的基本原理是在高能激光束的照射下,沿着特定的轨迹,在工件表面留下一定的熔化、汽化、加热变色等物理化学痕迹,从而实现工件表面的信息标注。激光打标机的核心***是激光控制***,而绘图***又是控制***的关键分支***。激光标记首先要解决的问题就是对图案的二维轮廓进行识别,在此基础上生成轮廓内的一系列等距照射轨迹,激光沿轨迹照射便形成了清晰醒目的阴影标记。目前,激光标记常用的轮廓填充方案包括封闭曲线填充,对角线填充,交叉影线填充,等高线填充和之字形填充等。其中,等高线和之字形填充是最常见的两种填充方式:之字形填充的基本原理是利用等距平行线切割轮廓线形成一系列的平行线段,再将这些线段按照之字形顺序首尾相连,得到离散的激光轨迹。平行等高线填充的基本原理是利用多边形向内等距偏移,自外轮廓不断向内衍生新的子边界,直到等距等高线覆盖整个图形。实际应用中,选择何种填充方案很大程度上取决于标记材料的理化性质和标记过程对加工任务的影响。
激光标记常见的绘图模块主要有两种:一种是机器自带的绘图软件,程序, App等,通过一定的算法自动识别物体的轮廓,颜色等特征信息,通过比对软件自带的图库,批量生成不同类型的填充阴影。优点是能在短时间内完成轨迹文件制作并上传控制中心,不仅效率高,而且实现了自动化。但最大的缺点是不能对打印对象进行实时处理,可塑性弱,比如标记镭雕LOGO等复杂图案时仍需外源软件再加工,一旦绘图软件出现故障,整个激光打标机都会停止运作,设备维修方面也必须考虑拆解组装打标机造成的成本问题和安全问题。另一种是借助外源绘图软件辅助制作阴影文件,常见的有CorelDraw,CAD等,能够在打标机外部生成阴影并规划激光轨迹,再将输出的阴影文件(通常是pdf或者jpg等图片格式)传回控制***并执行后续操作。这类软件大多是国外研发的非开源软件,需要购买使用权,且软件内部代码无法或者很难更改,程序可塑性不高。此外,绝大多数软件对输入和输出数据的文件格式也有一定的要求,不兼容现象时常存在。当前,我国在激光标记绘图软件和程序的开发方面仍属空白,随着激光标记技术的不断推广,面向多种编程语言的阴影自动生成程序已成为潜在需求。
目前,激光标记阴影的自动生成模块仍以打标机自带的图形处理程序为主,暂时没有共享的开源程序,且处理速度不理想。MATLAB自带的Polygon程序包可以完成多边形的等距偏移,理论上可以实现等距等高线的阴影生成,但偏移后的多边形阴影曲线仍然存在终点位置开口,端点连接混乱,过量偏移等问题,尤其针对多连通域图形来说,仍需进一步的优化处理。之字形阴影暂无MATLAB命令可以一键生成,需要手动编程实现。总的来说,基于MATLAB等各类编程语言的激光标记阴影程序设计还有很大发展空间。
为解决开源绘图程序短缺问题,并实现激光标记阴影的高效、快速生成,本发明引入多边形等距偏移和等距平行线切割两种算法,根据MATLAB的图形处理命令和编程特点,建立多连通域图形平行线与等高线激光标记阴影自动生成模型和程序。首先读取多连通域图形数据并将二维分辨率插值至1/5间距,通过最大次数等距偏移,去除叠边,断点识别重连和删除错位连接四个步骤实现等高线阴影的自动生成,并通过单次等距偏移,等距线切割,交点排序,奇偶边处理和非单调边去除五个步骤实现“之”字形阴影的自动生成。
发明内容
本发明解决的技术问题在于提供一种多连通域图形平行线与等高线激光标记阴影自动生成方法,并利用MATLAB开源编程语言对算法进行包装实现。
一种基于MATLAB的激光标记阴影的自动生成方法,包括以下步骤:
步骤1:图形边缘数据的提取与插值处理;
步骤2:多边形等距偏移;
步骤3:建立等高线阴影填充模型;
步骤4:建立等距平行线阴影填充模型;
步骤5:基于MATLAB开源编程语言进行包装实现。
所述步骤1具体包括:
利用MATLAB自带的Incontour或Edge函数,或者借助其他图形学方法,获取给定图形的轮廓边界坐标集,通过interp函数对边界坐标线性插值,将各个点之间的水平和垂直距离控制在偏移间距的1/4以内。
MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制***等领域。
所述步骤2具体包括:
首先,根据轮廓边界坐标数据集求解目标轮廓的曲线方程;目标轮廓曲线实质上并不是光滑曲线,而是由多条直线首尾相连构成的多边形;在笛卡尔坐标系下,以一个简单的多边形为例,假设外轮廓上有两点坐标为(XA,YA)和(XB,YB),如图1所示,直线AB的斜率k可以表示成:
设直线AB的方程为:y=kx+b,将点A或点B的坐标带入直线方程,得到:
因此,任意一条直线的方程可以表示为:
假设内轮廓上两点坐标为P1和P2,则P1P2线段就是我们需要生成的等距内轮廓线段;与直线AB相比,P1P2在Y轴上产生一个增量δb,P1P2方程为:
其中,d的符号由斜率k和x轴增量决定;把δb带回方程,P1P2方程变成:
同理,对于另一条相邻的内轮廓线段P2P3,其与P1P2的交点为:
联立上述两方程得到交点坐标,连接所有交点即可得到下一阶等距偏移轮廓;在MATLAB中,该方法可以利用Polybuffer命令自动实现,而在Python、C++, Java等语言中,可以根据上述方案逐步编程实现。
所述步骤3具体包括:在多边形等距偏移算法的基础上,建立等高线阴影填充模型;
单连通图形的等高线填充只需要多次重复多边形等距偏移过程,直到空白区域完全被覆盖,对于多连通图形,则可以视为多个单连通图形的交集区;
设最外层图形为第一层,向内依次为第二、第三层……,其中奇数层的图形向内偏移,偶数层图形向外偏移;与单连通图形相比,多连通图形的等距偏移在交点、拐点等位置容易出现中断、重叠、错位等现象,使得运算效率大幅降低,甚至产生算法漏洞;因此,多连通图形的阴影生成算法需要在单连通的基础上进一步优化;
当AB两个单连通图形的阴影出现重叠时:
首先,利用inpolygon函数判断同层轮廓的两条闭合阴影曲线之间的重叠部分;
其次,取重叠线段的起点和终点,按照最小距离原则配对后重新连接,去除两点之间的重叠曲线;
之后,在复合图形的基础上做等距偏移,偏移的过程中如果图形断裂为两个或两个以上的子图形,则会在下一步分别独立进行等距偏移,不会产生相互影响,直到空白区域被完全覆盖;
最后,设定阈值为偏移间距的1/3倍,检测长度超过阈值的曲线,即误连线段,并删除,最终形成完整平滑的等距等高线填充阴影。
所述步骤4具体包括:
首先,根据平行线间距要求对原始坐标集进行插值,将水平和垂直分辨率保持在平行线间距的1/4以上。
然后利用等高线阴影填充模型实现***曲线的一阶等距偏移,最后在一阶子轮廓的基础上生成“之”字平行线阴影;
与等高线阴影填充方案不同,多连通图形的平行线阴影填充算法也适用于单连通域图形:以x方向为平行线所指方向,y方向为垂直平行线方向;利用max函数和min函数分别求图形在y方向的上边界Ymax和下边界Ymin,此时对图形边界进行适当扩充,指定Ymax+0.2*(Ymax-Ymin)为图形顶边界,Ymin-0.2*(Ymax-Ymin)为图形底边界,根据用户指定的平行线间隔,在顶底边界之间绘制等间距的平行线与子轮廓相交,并得到交点集Iinter;
然后利用Inpolygon函数判断和去掉奇数层轮廓以外、偶数层轮廓以内的线段;剩余线段中的点存储在点集Iseg中,存储时按照“之字形”的走向顺序依次排列,即奇数行从左到右排列,偶数行从右到左排列;
得到点集I,J之后,循环寻找点集J中存在y方向位移的所有相邻点,组成跳跃点集Ijump,点集Ijump所有相邻跳跃点之间的外轮廓点构成点集Iboundary;
“之字形”阴影的特点是在奇数行连接保留左边界,去掉右边界,在偶数行保留右边界,去掉左边界;
按此规律,首先将Iboundary中的所有点进行归类,构成同一条边的全部点归为一类;此时,由于图形轮廓可能在某一两条平行线之间发生转弯,形成不单调的弯曲线段,从而打乱了点类的奇偶排序;因此,需要对每一类点进行单调性检验,将开头两点的纵坐标之差与末尾两点的纵坐标之差相乘,若为负数,则去掉该类所有点,得到优化后的点集Iboundary-1;
然后,依次对Iboundary-1中的各个点类进行循环判断,若该类点属于奇数行的右边界或偶数行的左边界,则将该类的所有点其从Iboundary-1中移除;
最后,将剩下的每一类点连接起来,就得到“之”字形阴影。
所述步骤5具体包括:将两种填充方法通过MATLAB进行包装实现,图形外轮廓数据通过指定文件输入,能够兼容表格、文本文档、mat文件、数据流文件,还可以直接读取图片文件并转化为灰度值矩阵。
本发明实现了激光标记阴影生成程序的开源,将激光标记功能开源化使得用户可以随时根据实际情况对标记算法进行更改,提高了绘图程序的算法可塑性以及数据类型和编程语言的兼容性;实现了基于MATLAB的等高线和平行线阴影填充,算法简单易行,计算速度快,适用于所有多连通域图案的激光标记,克服了阴影曲线断点、误连、过量偏移等问题,填补了与激光打标机适配的开源程序短缺问题。本方法简单、高效,充分利用了MATLAB自带的程序功能,并且解决了传统填充曲线终点位置开口,端点误连,等距线过量偏移等问题。设计的 MATLAB开源程序适用于更复杂的图形,并可以按照其他编程语言进行改写,实现了阴影生成的开源化,为激光标记的阴影生成模块提供了更多平台选择,应用前景广泛。
附图说明
图1为本发明步骤1图形边缘数据的提取与插值处理的等距偏移方法示意图;
图2为本发明等距等高线填充方法在多连通图形应用时的优化方案;
图3为本发明在1mm和0.1mm间距下的填充结果。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述,但并不以此作为对本申请保护范围的限定。
基于MATLAB的多连通域图形平行线与等高线激光标记阴影自动生成方法通过如下步骤进行实施:
第一步:通过MATLAB自带的图形和数据读取功能,或通过其他图形边缘检测方法提取目标图案的外轮廓数据集Ioutline
第二步:通过线性插值方法,将外轮廓数据集的x方向和y方向分辨率控制在0.2倍线间距以上,得到插值后的轮廓数据集Iinterp
第三步:多边形等距偏移
根据轮廓边界坐标数据集求解目标轮廓的曲线方程。在笛卡尔坐标系下,对于任意图形,将其看作一系列直线构成的多边形,在两相邻点坐标(XA,YA) 和(XB,YB)已知的情况下,计算两点所连直线的斜率k:
设AB的方程为:y=kx+b,将点A或点B的坐标带入直线方程,得到:
从而任意一条直线的方程可以表示为:
内轮廓上两点坐标假设为P1和P2,则P1P2线段就是我们需要生成的等距内轮廓线段。与AB线相比,P1P2在Y轴上产生一个增量δb,P1P2方程为:
d的符号由斜率k和x轴增量决定。把δb带回方程,P1P2方程变成:
对于另一条相邻的内轮廓线段P2P3,其与P1P2的交点为:
联立上述两方程得到交点坐标,连接所有交点得到下一阶等距偏移轮廓。在MATLAB中可以利用Polybuffer命令实现该算法,而在Python、C++,Java等其他编程平台上,只需根据上述步骤编程实现。
第四步:建立多连通图案的等距平行线阴影填充模型
在多边形等距偏移算法的基础上,建立等高线阴影填充模型。单连通图形的等高线填充只需要多次重复多边形等距偏移过程,直到空白区域完全被覆盖,对于多连通图形,则可以视为多个单连通图形的交集区。设最外层图形为第一层,向内依次为第二、第三层……,其中奇数层的图形向内偏移,偶数层图形向外偏移。与单连通图形相比,多连通图形的等距偏移在交点、拐点等位置容易出现中断、重叠、错位等现象,使得运算效率大幅降低,甚至产生算法漏洞。因此,多连通图形的阴影生成算法需要在单连通的基础上进一步优化。
当AB两个单连通图形的阴影出现重叠时,首先,利用inpolygon函数判断同层轮廓的两条闭合阴影曲线之间的重叠部分。其次,取重叠线段的起点和终点,按照最小距离原则配对后重新连接,去除两点之间的重叠曲线。之后,在复合图形的基础上做等距偏移,偏移的过程中如果图形断裂为两个或两个以上的子图形,则会在下一步分别独立进行等距偏移,不会产生相互影响,直到空白区域被完全覆盖。最后,设定阈值为偏移间距的1/3倍,检测长度超过阈值的曲线(误连线段)并删除,最终形成完整平滑的等距等高线填充阴影。
第五步:建立“之”字形阴影填充模型;
首先利用等高线阴影填充模型实现***曲线的一阶等距偏移,之后,以x方向为平行线所指方向,y方向为垂直平行线方向。在MATLAB中利用max函数和min 函数分别得到图形在y方向的上边界Ymax和下边界Ymin,指定Ymax+0.2*(Ymax-Ymin)为图形顶边界,Ymin-0.2*(Ymax-Ymin)为图形底边界,根据用户指定的平行线间隔,在顶底边界之间绘制等间距的平行线与子轮廓相交,并得到交点集Iinter。然后利用Inpolygon函数判断和去掉奇数层轮廓以外、偶数层轮廓以内的线段。剩余线段中的点存储在点集Iseg中,存储时按照“之字形”的走向顺序依次排列,即奇数行从左到右排列,偶数行从右到左排列。得到点集I,J之后,循环寻找点集J 中存在y方向位移的所有相邻点,组成跳跃点集Ijump,点集Ijump所有相邻跳跃点之间的外轮廓点构成点集Iboundary。最后,将Iboundary中的所有点进行归类,构成同一条边的全部点归为一类。将开头两点的纵坐标之差与末尾两点的纵坐标之差相乘,若为负数,则去掉该类所有点,得到优化后的点集Iboundary。最后,依次对Iboundary中的各个点类进行循环判断,若该类点属于奇数行的右边界或偶数行的左边界,则将该类的所有点其从Iboundary中移除。最后,将剩下的每一类点连接起来,就得到“之”字形阴影,如图3所示。
第六步:基于MATLAB开源编程语言进行包装实现
将上述两种方法按照计算顺序,通过MATLAB编程语言逐步编程实现,每次循环之前都将本轮所得轮廓坐标集的空间分辨率稀疏至等距线间距的0.2倍,减少不必要的运算。图形外轮廓数据通过指定文件类型输入,兼容Excel表格、文本文档、mat矩阵数据文件、dat数据流文件等多种文件形式,还可以直接读取图片文件并转化为灰度值矩阵。输出数据也兼容上述格式。
最终多连通图形在1mm和0.1mm分辨率下等距等高线填充和“之”字形等距线填充效果如图3所示。图案清晰,曲线距离均等,且无断点。
本发明构建了基于MATLAB的多连通图形等距等高线和“之”字形阴影填充方法,能够实现对多连通图形的高效、快速填充,解决了激光标记绘图程序可塑性差,计算速度慢,结果出现断点、误连、偏移次数过量等问题。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (1)
1.一种基于MATLAB的激光标记阴影的自动生成方法,包括以下步骤:
步骤1:图形边缘数据的提取与插值处理;具体包括利用MATLAB自带的Incontour或Edge函数,获取给定图形的轮廓边界坐标集,通过interp函数对边界坐标线性插值,将各个点之间的水平和垂直距离控制在偏移间距的1/4以内;
步骤2:多边形等距偏移;具体包括:首先,根据轮廓边界坐标数据集求解目标轮廓的曲线方程;目标轮廓曲线实质上并不是光滑曲线,而是由多条直线首尾相连构成的多边形;在笛卡尔坐标系下,以一个简单的多边形为例,设多边形上任意两相邻点的坐标为A(XA,YA),B(XB,YB),直线AB的斜率k可以表示成:
设直线AB的方程为:y=kx+b,将点A或点B的坐标带入直线方程,得到:
因此,任意一条直线的方程可以表示为:
假设内轮廓上两点坐标为P1和P2,则P1P2线段就是我们需要生成的等距内轮廓线段;与直线AB相比,P1P2在Y轴上产生一个增量δb,P1P2方程为:
其中,d的符号由斜率k和x轴增量决定;把δb带回方程,P1P2方程变成:
同理,对于另一条相邻的内轮廓线段P2P3,其与P1P2的交点为:
联立上述两方程得到交点坐标,连接所有交点即可得到下一阶等距偏移轮廓
步骤3:建立等高线阴影填充模型;具体包括:在多边形等距偏移算法的基础上,建立等高线阴影填充模型;
单连通图形的等高线填充只需要多次重复多边形等距偏移过程,直到空白区域完全被覆盖,对于多连通图形,则可以视为多个单连通图形的交集区;
设最外层图形为第一层,向内依次为第二、第三层,其中奇数层的图形向内偏移,偶数层图形向外偏移;
当AB两个单连通图形的阴影出现重叠时:
首先,利用inpolygon函数判断同层轮廓的两条闭合阴影曲线之间的重叠部分;
其次,取重叠线段的起点和终点,按照最小距离原则配对后重新连接,去除两点之间的重叠曲线;
之后,在复合图形的基础上做等距偏移,偏移的过程中如果图形断裂为两个或两个以上的子图形,则会在下一步分别独立进行等距偏移,不会产生相互影响,直到空白区域被完全覆盖;
最后,设定阈值为偏移间距的1/3倍,检测长度超过阈值的曲线,即误连线段,并删除,最终形成完整平滑的等距等高线填充阴影
步骤4:建立等距平行线阴影填充模型;具体包括首先,根据平行线间距要求对原始坐标集进行插值,将水平和垂直分辨率保持在平行线间距的1/4以上;
然后利用等高线阴影填充模型实现***曲线的一阶等距偏移,最后在一阶子轮廓的基础上生成“之”字平行线阴影;
与等高线阴影填充方案不同,多连通图形的平行线阴影填充算法也适用于单连通域图形:以x方向为平行线所指方向,y方向为垂直平行线方向;利用max函数和min函数分别求图形在y方向的上边界Ymax和下边界Ymin,此时对图形边界进行适当扩充,指定Ymax+0.2*(Ymax-Ymin)为图形顶边界,Ymin-0.2*(Ymax-Ymin)为图形底边界,根据用户指定的平行线间隔,在顶底边界之间绘制等间距的平行线与子轮廓相交,并得到交点集Iinter;
然后利用Inpolygon函数判断和去掉奇数层轮廓以外、偶数层轮廓以内的线段;剩余线段中的点存储在点集Iseg中,存储时按照“之字形”的走向顺序依次排列,即奇数行从左到右排列,偶数行从右到左排列;
得到点集I,J之后,循环寻找点集J中存在y方向位移的所有相邻点,组成跳跃点集Ijump,点集Ijump所有相邻跳跃点之间的外轮廓点构成点集Iboundary;
“之字形”阴影的特点是在奇数行连接保留左边界,去掉右边界,在偶数行保留右边界,去掉左边界;
按此规律,首先将Iboundary中的所有点进行归类,构成同一条边的全部点归为一类;对每一类点进行单调性检验,将开头两点的纵坐标之差与末尾两点的纵坐标之差相乘,若为负数,则去掉该类所有点,得到优化后的点集Iboundary-1;
然后,依次对Iboundary-1中的各个点类进行循环判断,若该类点属于奇数行的右边界或偶数行的左边界,则将该类的所有点其从Iboundary-1中移除;
最后,将剩下的每一类点连接起来,就得到“之”字形阴影;
步骤5:基于MATLAB开源编程语言进行包装实现;具体包括:将两种填充模型通过MATLAB进行包装实现,图形外轮廓数据通过指定文件输入,两种填充模型为等高线阴影填充模型和等距平行线阴影填充模型,能够兼容表格、文本文档、mat文件、数据流文件,还可以直接读取图片文件并转化为灰度值矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110376152.1A CN113096147B (zh) | 2021-04-08 | 2021-04-08 | 一种基于matlab的激光标记阴影的自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110376152.1A CN113096147B (zh) | 2021-04-08 | 2021-04-08 | 一种基于matlab的激光标记阴影的自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113096147A CN113096147A (zh) | 2021-07-09 |
CN113096147B true CN113096147B (zh) | 2022-07-29 |
Family
ID=76675055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110376152.1A Expired - Fee Related CN113096147B (zh) | 2021-04-08 | 2021-04-08 | 一种基于matlab的激光标记阴影的自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113096147B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113878254A (zh) * | 2021-09-29 | 2022-01-04 | 江苏铁锚玻璃股份有限公司 | 异形玻璃激光蚀刻、除膜图案的绘制方法及图形 |
CN113894428B (zh) * | 2021-09-30 | 2024-02-20 | 中国人民解放军国防科技大学 | 基于之字形的单层轮廓图案的激光填充方法及装置 |
CN113793352B (zh) * | 2021-09-30 | 2023-04-28 | 中国人民解放军国防科技大学 | 基于等高线的单层轮廓图案的激光填充方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5106787B2 (ja) * | 2006-05-16 | 2012-12-26 | ミヤチテクノス株式会社 | レーザマーキング方法及び装置 |
GB2520945A (en) * | 2013-12-03 | 2015-06-10 | Spi Lasers Uk Ltd | Method for laser marking an anodized metal surface with a desired colour |
AU2017344035A1 (en) * | 2016-10-10 | 2019-05-02 | Idemia Identity & Security USA LLC | Identification document with contoured surface image |
US20180264598A1 (en) * | 2017-03-15 | 2018-09-20 | General Electric Company | Constantly varying hatch for additive manufacturing |
CN112008248B (zh) * | 2020-07-29 | 2021-05-18 | 大连理工大学 | 采用激光双扫描策略加工表层图案轨迹生成方法 |
-
2021
- 2021-04-08 CN CN202110376152.1A patent/CN113096147B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN113096147A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113096147B (zh) | 一种基于matlab的激光标记阴影的自动生成方法 | |
JP6250901B2 (ja) | Cncとロボット制御装置が通信ネットワークを介して接続されたロボットシステム | |
CN110428479B (zh) | 一种Solid works二维工程图尺寸标注纠错自适应调整方法 | |
US20170061031A1 (en) | Method and apparatus for converting diagrams into application engineering elements | |
CN109241555B (zh) | 一种改善绘图精度的多图元Gerber文件解析及绘制方法 | |
Behera et al. | Tool path generation for single point incremental forming using intelligent sequencing and multi-step mesh morphing techniques | |
CN110171000B (zh) | 坡口切割方法、装置及控制设备 | |
CN104217063A (zh) | 用于钢轨轧制孔型的仿真设计方法 | |
CN110795835A (zh) | 一种基于自动同步建模的三维工序模型逆向生成方法 | |
CN115194931A (zh) | 混凝土3d打印路径的规划方法、装置、设备及存储介质 | |
CN105447284A (zh) | 一种工艺余量的添加方法 | |
CN105759724A (zh) | 一种智能化的编程方法 | |
CN110705650A (zh) | 一种基于深度学习的钣金布局方法 | |
CN116541912A (zh) | 一种基于cad图像识别生成接线图的方法及装置 | |
CN110348163B (zh) | 一种轮胎花纹边界连续相切圆弧的拟合方法 | |
CN115861368A (zh) | 一种针对多类图像的多类轮廓跟踪方法、装置和介质 | |
CN102012691A (zh) | 基于ug平台的机械线切割数据处理方法、装置和*** | |
CN111260723B (zh) | 棒材的质心定位方法及终端设备 | |
US20200057832A1 (en) | Method for Computer Assisted Planning of a Technical System | |
CN114863438A (zh) | 用于识别曲线的方法及*** | |
CN109145857B (zh) | 一种从曲线图形中提取曲线数据的方法 | |
Shen et al. | A parameterized automatic programming solution for composite grinding based on digital image processing | |
CN113297764A (zh) | 有限元参数化模型建模方法、***及存储介质 | |
Atia | Classification and elimination of overlapped entities in DXF files | |
CN111861997A (zh) | 一种花纹板材圆孔尺寸检测方法、***及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220729 |