电脑绣花走针自动生成的算法设计和实现.docx
- 文档编号:4369068
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:14
- 大小:612.37KB
电脑绣花走针自动生成的算法设计和实现.docx
《电脑绣花走针自动生成的算法设计和实现.docx》由会员分享,可在线阅读,更多相关《电脑绣花走针自动生成的算法设计和实现.docx(14页珍藏版)》请在冰豆网上搜索。
电脑绣花走针自动生成的算法设计和实现
电脑绣花走针自动生成的算法设计和实现
摘 要
绣花问题是连续型的填充,在不同区域的缝制过程中,缝针不能提针,因此不能用一般的离散型区域填充方法处理。
本文解决了绣花缝针轨迹的两个问题:
缝制区域节点的划分和点的遍历问题。
本文运用几何计算和图论理论提出了一个绣花缝针轨迹自动生成算法先对轮廓走向进行定义通过轮廓铅垂方向的局部极值点的分割线将图案从上向下进行分割采用交点的特征值比较彻底的解决了分割时的重点问题将图案准确的划分成缝针能一次完成的若干个节点根据每个节点与其上或下分割线的一一对应关系收集到所有节点的轮廓信息在区域划分的基础上根据节点的邻接关系建立节点的邻接图一个无向连通图根据绣花问题的需要在无向连通图中寻找指定起点和终点之间的最长路径这是一个NP问题在实际应用中往往以近似最长路来代替最长路现存的算法都针对图中任意两点之间的近似最长路本文利用一条最长路中是不可以被再被插入的这个事实通过对图的深度优先生成树的指定起点和终点之间的路径进行不断插入的方法以多项式的算法复杂度求得一条指定起点和终点间不可再被插入顶点的路这样的一条路往往非常接近指定的起点与终点之间的最长路。
关键词:
绣花,无向连通图,最长路,深度优先生成树
Abstract
Intheprocessofembroidering,needlecannothangupforchangingtoadifferentarea.Therefore,Embroiderproblemcouldbeabstractasacontinuousarea-fillingwork.Consideringdispersearea-fillingmethodscannotprocessthisproblemwell,basedongeometrycomputingandgraphicstheory,weproposedanalgorithmoffindingpathofembroideringneedleinthispaper.
First,wedefinedtheoutlineorientations,andusedpartextremumpointofoutlinegravitationalorientationtobuildsomedividelinessoastodividethepicture.Andwesolvetheoverlappointproblembynodicaleigenvaluemethodmoreperfectly.Therefore,thepictureisdividedintosomenodeswhichcanbefinishedbyonedrawing.Then,basedonconnectionsofthesenodes,adjacencygraphofnodeswerebuilt,itisaundirectedconnectedgraph.Basedontherequestoftheembroiderproblem,weneedtofindalongestpathinthisundirectedconnectedgraph.ItisaNP-hardproblemthattofindthelongestpathinundirectedconnectedgraph,sopeopleintendtofindsomeapproximationalgorithmsinpractice,butallthealgorithmsexistedisforaapproximatelongestpathbetweentworandomvertexesinthegraph.Basedonthatalongestpathcannotbeinsertedintoanewvertex,wecaninsertallthenodespossibleintothepathbetweenthecertaintwovertexesintheDFSTraverseTreeofthegraphtogetapaththatcan’tbeinsertedintoagaininapolynomial-time,usuallythispathwillbeaverygoodapproximatelongestpathbetweentwocertainvertexes.
KeywordsEmbroider,Undirectedconnectedgraph,thelongestpath,DFSTraverseTree
概述
绣花〔1,2〕是一门非常古老的行业,也是我国璀璨的民族手工艺中一朵不衰的奇葩,多头机,顾名思义就是一台机有许多个机头,每个机器头独立进行刺绣操作,目前最多的达28头1而每个头又有很多支针(俗称几种颜色),最多达12针1电脑多头绣花的生产全部采用自动化作业,实现自动换针(换不同颜色的绣线)、自动切线、自动移图等作业,基本摆脱了手工操作,它的动作完全由电子系统操作而绣花机绣什么图案。
1.1电脑绣花系统简介
早在西周晚期即已出现的我国刺绣工艺,延绵历时数千年,绣艺精妙针法繁多,它与织锦并驾齐驱地获得“锦绣文彩”的称号。
如今,中国刺绣遍及全国各地每一地区产品,又各具地方特色,成为出口大宗,颇受国外用户欢迎。
历来刺绣是由手工一针一线绣出,但近来机绣技艺改进提高很快,制作一般日用绣品又快又好,这对繁荣刺绣工艺,满足人民生活需要,作出了一定贡献。
电脑绣花起源于德国。
又叫电子绣花。
二战后,德国的ZANGS公司和PFAFF公司相继将电子控制技术与缝纫技术和绣花技术相结合,在单台缝纫机可以绣花的基础上,将若干台缝纫机连接起来,运用电子技术集中控制,使绣花制品这种传统的手工艺术可以自动生产、批量生产。
日本在六十年代也开始研制电子绣花机,在技术上很多抄袭德国制品,便很快发展起来。
特别是进入七十年代后,随着单片机的问世,终于跃进电脑绣花时代。
电脑刺绣系统主要由两大模块组成:
一部分是刺绣的工艺实现部分,即电脑绣花机及其控制系统:
另一部分就是电脑绣花花版编辑CAD系统。
本文主要论述电脑绣花CAD系统相关的问题,作为电脑绣花机的辅助系统,它负责提供电脑绣花机控制系统所需要的花版信息。
随着刺绣机的普及和人们对刺绣产品要求的提高,电脑绣花花版CAD系统的地位也口益突出。
毕竟电脑绣花机只能完成一些机械动作,它不具备创造性功能,所有创造性的工作都是在花版编辑CAD系统中完成的。
刺绣产品最终能否为广大用户所喜欢和接受在很大程度上取决于设计人员设计出来的花样是否具有独创性、新颖性和时效性。
一个好的打版软件能够让设计人员的意图顺利完整的体现出来,而一个不好的打版软件会限制设计人员的发挥,因此一个能如实、快速、准确地反映出设计者的构思,并给设计者提空一个良好的修改操作环境,一个对设计者非常友好的绣花软件对输出信息有很大的作用,进一步也会提高刺绣产品的最终质量。
目前在国内外时常上有许多厂家都在进行这方面的研究工作,比较著名的有香港京华公司、天虹公司、意大利PROWIN公司、南京大学的天木、日本的田岛等,它们的产品一般都具有较好的兼容性,能与世界上许多著名的多头绣花机厂商的花版格式相匹配。
1.2电脑刺绣系统的发展趋势
本文只论述电脑绣花花版CAD系统,因此只对其发展趋势做简要介绍:
1-、实现图像智能化自动编针、针法更加多样化
目前的花版CAD系统普遍采用的方法是先用投影仪将花稿放大到合适尺寸,然后用数字化仪人工输入。
这种方法效率很低,而且精度难以保证。
因此通过扫描仪输入数字图像,通过图像处理识别各个图像区域,自动选择针法对每个区域编针是花稿输入的发展趋势。
2、实现汉字和英文字的自动编针
在一般的刺绣CAD系统中,汉字的编针都是作为普通的花稿处理,而汉字作为普通花纹输入效率很低。
通过WINDOWS系统中自带的矢量字库来输入,其中包含字体的特征点,取得特征点后选用针法,自动编针汉字。
3、刺绣花稿的模拟输出
在以前的系统中,设计花稿的效果如何往往要通过刺绣机绣出样品后才可以加以判断,这种方法费时费料。
而如果能在显示器上或者通过打印机动态模拟刺绣物的实际效果,这样可以使设计和生产完全独立的分开操作,设计者可以根据模拟效果修改设计,大大提高了效率。
4、图库管理和通信功能的扩展
由于系统中可能会存放大量的花稿,系统应该提供方便的花稿管理方式,便于方便的查找所要的花稿。
同时随着计算机网络的发展,要求绣花CAD系统应该具有能在网络上传送数据的功能,这样一方面可以避免许多重复劳动:
另一方面也使得产品的设计周期大大缩短;甚至可以进行异地协同设计。
这也是CAD系统发展的新趋势。
1.3绣花轮廓简介
在绣花花稿中包含两种轮廓线,形轮廓和面形轮廓。
线形轮廓就是所有的刺绣操作都在一条线上完成,这条线可以是直线,也可以是曲线,如图1-1所示。
图1-1
这是一条曲线轮廓,刺绣的所有的针点都会落在这条曲线上,这种轮廓我们称之为线形轮廓。
面形轮廓就是刺绣操作在一个区域内完成,而面形轮廓又分成两种,一种叫对边轮廓,另一种叫复合轮廓。
对边轮廓就是整个轮廓由两条曲线或者直线来确定,然后将两条曲线的起点和终点分别连接起来,构成一个闭合的区域,这样的一个轮廓叫做对边轮廓,如图1-2所示,整个轮廓由上下两条白线所确定,在左右两端分别将两条对边的起点和终点连接起来,构成一个闭合区域,然后选择适当的针法对闭合区域内进行绣花,如绿线所示。
面形轮廓的另外一种叫做复合轮廓,复合轮廓是由一个大的多边形和其内部的一个或多个多边形构成的轮廓,复合轮廓的刺绣区域是外部大多边形所包含的区域减去内部多边形的区域。
图1-2
绣花缝针轨迹自动生成算法的设计
设己提供一个图案(图2-1),是单色或彩色的,是简单的标签(如西装上的标记)或是复杂的图案(如一幅刺绣),希望提供缝针的走向轨迹.其基本要求是:
图2-1图案的例子
(1)图案上同一色彩的(不同)区域缝制时必须一次完成,即在同一色彩的缝制过程中,缝针只能下一次针,上一次针,中间不能提针。
(2)在跨越不同区域时缝针的过渡线不能穿越己缝制的图案区。
很明显,这不能用区域填充力一法处理[1],区域填充是离散型的填充,绣花问题是连续型的填充,在不同区域的缝制过程中,缝针不能提针。
例如图2-1中,头像的背景力一格和皮肤区域均须一次完成.也不是图的着色问题。
南京大学计算机科学与技术系对智能刺绣CAD系统进行了长时间的研究,能对图像识别获得适合编针的轮廓图形因,文献中采用识别轮廓上的拐点,将轮廓按从上到下,自左至右的原则分为若十个区域,再对区域依次采用包梗自动编针,并指出分割区域是算法的核心,实现起来相当繁琐,因而文中未给出算法。
本文运用几何计算和图论理论解决图案的区域分割问题并自动提供缝针的走向轨迹。
2.1问题抽象
绣花问题可抽象成如下的数学问题:
设给定一个由多边形构成的多连通域,即给定N个边界,其中一个外边界,一个或多个内边界,每个边界均由任意形状、封闭不交叉的折线构造.为叙述方便,采用了如图2-2(a)的粗线所示带有6个内孔的简单图案。
2-2(a)用轮廓表示图形的边界
为了填充整治个区域,要设法将填充区分成若十个区域。
划分的力一法是:
通过边界铅垂力一向的局部极点(Ymax,和Ymin点)作水平线,得到与边界的交点,由此将图案区域从上向下划分成若干单连通区(图2-2(a)被划分成19个单连通区,以下简称“节点(node)”)。
显然,有相邻边界的节点是可以不必抬针而连续绣下去的。
例如,节点5的边界邻接关系有:
上边界:
与节点2的下边界、节点8的上边界相邻,
下边界:
与节点7的上边界、节点4的下边界相邻。
如果按“图”的形式表示,节点5与节点2,8,7和4有“连接关系”.由此,图2-2(a)可以用图2-2(b)的“图”的形式表示,有连接关系的节点用连线相连。
于是,图2-2(a)所示图案的绣花缝针路径问题变成以下问题:
(1)将图案区域划分成缝针能一次完成的区域(节点)(图2-2(a)划分成19个节点);
(2)建立图案中各“节点”的邻接关系,将图案构造成“图”(图2-2(b);
(3)用半哈密尔顿路径或深度遍历力一法求取“图”中各“节点”的缝制路径;
(4)求取缝针缝制轨迹。
2-2(b)“图”的表示形式
2.2几何基础
为了给出节点的构造算法,先给出几何计算的理论基础。
定义1.两向量交点的特征值。
两向量交点的特征值由其矢量积的力一向定义,特征值的绝对值取为1。
两个向量交点的特征值有两个,分别对应于求交的两个向量,且这两个特征值的符号相反,其代数和为0。
图2-3显示了两向量处于特殊位置时向量交点特征值的情况,其中的“+”“一”符号是相对于中间的水平直线的。
图2-3两向量交点特征值的定义及特殊位置时特征值的例子
定义2、边界顶点排序。
;图案每一边界的顶点按下列原则排序:
当人顺着图案边界行走时,他的左手指向图案的内部。
对于凸多边形,这个原则意味着:
图案的外边界为逆时针走向,内边界为顺时针走向。
根据定义1和定义2,如果有任一向量与图案的边界向量相交,则相对于该向量,若交点的特征值为-1,就意味从此交点开始,该向量进入图案内部,称为“入点”,反之,该向量从此点离开图案,称为“出点”。
2.3节点构造
下面的算法N将任一图案区域(由一个外边界和多个内边界构造)划分成“节点”,算法可分成两部分:
水平分割线求取.步骤1~6构造通过各边界沿铅垂力一向局部极点(Ymax和Ymin点)的水平分割线;
节点的构造.步骤7~12通过这些水平分割线构造“节点”,节点的边界也由封闭折线构造,符合定义2的边界顶点排序规则。
2.3.1算法N
将图案分割成节点。
1(边界顶点排法)。
对图案的每一边界顶点按定义2的规则排序。
2(求局部极值点)。
求取所有边界顶点铅垂方向的局部极值点(Ymax和Ymin点)。
所谓局部极值点是指该顶点的前一顶点和后一顶点严格在该顶点的上方(图2-3中3)或下方(图2-3中1)。
如果某一边是水平的,则若与该边2个顶点连接的两条边的2个非共顶点均在该边的卜方(图2-3中5)或上方(图2-3中6)就计为一个局部极点,否则,该边的2个顶点均不计为极点(图2-3中1,2,7,8)。
3(作分割线).对每一局部极值点,执行;
3.1(作水平分割线向量).通过极值点作自左至右的水平向量(该向量的左端点和右端点均需超越整个图案,以保证与所有边界求得交点.例如可取Xleft=Xmin-10,Xright=Xmax+10,其中Xmin和Xmax是图案外边界包围盒子的水平最小值和最大值)。
3.2(求交点).求取该分割线向量与各边界的边向量的交点和相对于该分割线向量的特征值.并对这此交点(及其附带的特征值)自左至右(即按水平方向的X值从小到大)排序。
3.3.有效交点的确定:
3.3.1.如果交点不在边向量的顶点上,则属正常交点(图2-3中标为“正常交点”的交点),保留该交点。
3.3.2.如果交点在边向量最低顶点上,则属有效特殊交点(图2-1中标为“0”或“①”特征交点的顶点,图2-3中3,6和1,2,7,8的一部分),保留该交点。
3.3.3.如果交点在边向量最高顶点上,则属无效特殊交点(图2-4(a)中标为“+-”和“-+”的顶点交点,图2-3中通,5和1,2,7,8的一部分),不子保留。
3.4.分割线端点的确定:
3.4.1(分割线的左端点)。
将局部极值点的左侧且水平方向最大的有效交点作为该分割线的左端点。
3.4.2(分割线的右端点)。
将局部极值点的右侧且水平方向最小的有效交点作为该分割线的右端点。
4(合并分割线)。
合并处于同一高度且有重叠部分的分割线(图2-4(a)中通过2,3,4的3条分割线合并成1~-5)。
5(记录分割线段)。
从左至右记录从“
”交点到“
”的分割线段,特殊情况该分割线段可能会退化成一个点(图2-4(a)中通个标为黑圆的顶点),在划分分割线段时也以2个点计算。
经过上述步1~5各步,将得到一系列有效分割线段,参见图2-4(b)。
6(记录标记点).将下列点作为“标记点”(参考图2-4):
:
6.1(节点点)。
将所有负特征点(图2-4(b)中的“
”点),包括退化的分割线段“点”(图2-4(b)中标为黑圆的点)作“节点点”标记(“节点点”数即为划分成单连通区域的总个数).如果负特征点不在任何边界的顶点上(图2-3“正常交点”类),则将其插入到所在边界的顶点队列。
6.2(上变向点)。
将所有正特征点(图2-4(b))中的“
”点),包括退化的分割线段“点”(图2-4(b))中标为黑圆的点)作“上变向点”标记。
如果正特征点不在任何边界的顶点上(图2-3“正常交点”类),则将其插入到所在边界的顶点队列(图4(b))中标为方框中“+-”号的1个顶点同时为“节点点”和“上变向点”)。
6.3(下变向点)。
对所有在分割线上的局部极大点(图2-4(b))中空心方框点)作标记,记为“下变向点”。
即每条分割线段的左端点为“节点点”,右端点为“上变向点”,位于分割线段上的局部极大点为“下变向点”。
7(标记点连接关系)。
对每一非退化成一个点的分割线段执行下列操作:
7.1.对每一分割线段,从左至右,对“节点点”和“上变向点”排序,建立后序关系(图2-4(b)中1→5)。
7.2.对每一分割线段,从右至左,对“上变向点”、“下变向点”和“节点点”排序,建立前序关系(图2-4(b)中1←2←3←4←5)。
8(开始一个新节点).依次取一“节点点”,FLag←1,记录该点为“首点”,并开始一个新节点。
9(取下一点).如果FLag←1,取下一个“标记点”,否则取下一个“边界顶点”。
10(回到首点).如果系“首点”,则已找到一个封闭节
点.记录该节点数据,“首点”作已用标记,转步12。
11(到标记点).如果是“标记点”,FLag←1-FLag,转步9。
12(结束)。
如果“节点点”完,则算法结束,否则转步8。
图2-4节点划分算法N示意图
算法数据结构
算法的数据结构包括绣花图案边界、顶点、标记点、图案节点和水平分割线的数据结构等。
3.1绣花图案的数据结构
绣花图案由一个外边界、零个或多个内边界构造,每个边界均由任意形状封闭不交叉的折线构造封闭多边形(边界)构造,每个边界的数据结构可表述为:
structBorder{//边界描述,边界按定义2的规则序
intn;//点(边界顶点各插入的“标记点”)数或边数
绣花图案的边界最多可有MaxBorder个(表示系统的处理能力,可根据应用需要确定),实际上有Nborder个(Nborder≥MaxBorder)。
3.2顶点和标记点的数据结构
图案顶点由其坐标和顶点序列前后指针表示,插入图案边界的标记点由其坐标和标记点序列中的前后指针表示.因此,顶点和标记点的数据结构可统地表示,如图3-5所示。
3.3划分节点的水平分割线的数据结构
绣花图案由通过每一内边界局部极值点的水平分割线分割成节点,该分割线可表述为
划分图案成节点时所产生的水平分割线最多可有MaxYlin。
条(表示系统的处理能力,可根据应用需要确定),实际上有YlineNumb条(YlineNumb≥MaxYline)。
3.4节点的数据结构
图案被水平分割线分割成若十个节点,节点的数据结构可表述为
图案被划分成的节点数最多可有MuxNocle个(表示系统的处理能力,可根据应用需要确定),实际上有NodeNumb个(NodeNumb≥MuxNode)。
第四章缝针轨迹
在划分出节点以后,缝针轨迹的输出可由下列3步完成:
(1)求取节点遍历路径
由绣花问题所引出的图的遍历问题是:
指定起始节点和终结节点,自动找到一个节点序列,每个节点遍历一次且仅一次.系统先采用半哈密尔顿算法求取从指定节点开始,到指定节点结束的半哈密尔顿路径.当半哈密尔顿路径搜索不成功时(如图6所示,如果指定1为起始节点,2为终结节点,则半哈密尔顿路径搜索将找不到满足条件的节点序列),系统改用“树形深度优先搜索”求取遍历序列。
图6指定起始节点和终结节点遍历路径搜索不成功的图案例子
(2)决定节点的缝制力一向
求取节点的遍历路径以后,根据相邻节点的位置关系,决定每一个节点是从上往下缝制还是从下往上缝制.力一法是:
从第1个节点开始,如果下一节点在本节点的上方,则本节点从下往上缝制,否则本节点从上往下缝制,如此类推。
(3)输出缝制轨迹
一个节点的缝制过程:
从第1个节点(自动找到标记有StartPoint的节点,记为N)的最高点下针(假定Ni,是从上往下缝制,否则从它的最低点下针),按照缝制的质量要求,向下(上)移动一个间距建立水平缝制线,求取该水平缝制线与Ni,边界的2个交点(根据节点的构造,有且只有2个交点),从缝针的当前位置缝到其中一个交点,再缝制到另一个交点,如此继续直到N缝制完毕(标记有EndPoint的节点)。
到下一节点:
如果N的下一节点(记为Ni+1)与Ni,的缝制力一向相同,则缝针直接缝制到Ni+1的开始点(Ni+1的最高点或最低点),重复一个节点的缝制过程;否则,可使缝针缝制到Ni+1的最高点(假定Ni+1是从下往上缝制,否则缝制到Ni+1的最低点),先沿着Ni+1右边界缝制到Ni的真正开始点,再重复一个节点的缝制过程。
结论
本算法用图形力一式模拟缝制过程,并对百余图案进行了考察,图7列出了其中一部分,左上角是正常图案,其他图案均含有特殊点.每个图案中的2个“十”符号表示缝针起点和终点.最后,缝针轨迹作为生成数控加工指令函数的输入参数,以最终输出数控加工指令,自动绣花。
图7算例
参考文献
[1]SunJia-Guangetal.CompuerGraphics.Beijing:
TsinghuaUniversityPress,2002(inChinese)(孙家广等编著.计算机图形学.北京:
清华大学出版社,2002)
[2]DaiYi-Qietal.GraphandAlgebraicStructure.Beijing:
TsinghuaUniversityPress,2001(inChinese)(戴奇等编著.图论与代数结构.北京:
清华大学出版社,2001)
[3]LiuHai-Taoetal.DesignandimplementationofintelligentenvironmentLorcomputerembroideryprogramming.JournalofSoltware,2000,12(9):
1399-1404(inChinese)(刘海涛等.智能化电脑刺绣编程环境的设计与实现.软件学报,2001,12(9):
1399-1404)
[3]LiHong-Bingetal.Intelligentcomputerizedembroideryenvironment-IC'EE.Jour
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电脑 绣花 自动 生成 算法 设计 实现