孙瑜刘芳(南京理工大学自动化学院,江苏南京210094)Study and Application of Computer Embroidery Machine Pattern Processing Technique摘要为了对花样进行有效的处理,在详细分析了DSB 格式花样文件存储特点的基础上,研究了坐标系缩放算法与花样的绝对坐标变换算法。
在坐标系缩放算法中,进一步研究了保证花样数据精度的方法,使花样能精确的显示;绝对坐标变换的应用,消除了数据在变换过程中产生的累积误差,提高了变换精度。
利用Qt Designer 设计了电脑绣花机嵌入式系统花样处理程序,实现了花样的动态不失真显示和不失真变换操作。
关键词:电脑绣花机,花样文件,花样处理AbstractIn order to process the pattern well,on the base of analyzing the storage characteristic of DSB pattern,the algorithmof zooming coordinate and the absolute coordinate algorithm for pattern transformation were studied.The pattern was dis-played precisely by using the zooming coordinate algorithm which ensured the precision of the pattern data;The transfor-mation precision was improved by using the absolute coordinate algorithm which eliminated the accumulated errors in transformation.The pattern processing programs of computer embroidery machine embedded system were designed by us-ing Qt Designer.The programs realize the undistorted showing of dynamic pattern picture in stable base areas and undis-torted transformation of the pattern.Keywords :computer embroidery machine,pattern file,pattern processing花样处理是电脑绣花机中的关键技术。
花样处理技术是通过花样信息的读取和操作来实现花样图案的显示、缩放和旋转等的技术。
梁克等人提出一种基于自主研制的花样格式的花样处理方法,处理效果好,但不适用于普通格式的花样文件,应用受到限制。
本文在综合考虑处理效果和实用性的基础上,实现了花样处理,并将此处理技术应用于实际的绣花系统,取得了很好的效果。
1花样文件存储格式及其特点花样处理是基于花样文件的操作,花样文件有DST 、DSB 、DSZ 等多种格式,每种格式的文件存储方式固定,并有其各自的特点。
本文简单介绍DSB 格式花样的存储特点,详细文件格式介绍可参考文献[4]。
DSB 格式花样文件由文件头、针位信息和文件尾三部分组成。
文件头存储花样的整体信息,有总针数、换色次数等;文件尾是文件的结束标识,花样文件均以1a 结束。
花样文件中最主要的信息是花样的针位信息,X 、Y 轴步进电机即是根据此信息带动绣框运动。
花样的针位信息由三个字节组成一个缝制单元,如表1所示:表1DSB 花样一针信息存储格式第一个字节A 7~A 0是控制功能码,包括了正常缝制、剪线、跳线等缝制动作,其中正常缝制和跳线又包括绣框移动的方向描述;第二、三个字节B 7~B 0和C 7~C 0分别是针迹Y 轴方向和X 轴方向的位移大小。
该位移大小是相对于前一针的相对偏移量。
由上述分析可以得出,DSB 格式花样具有以下特点:1)花样的文件头便于花样信息的校正。
2)花样针位信息中的控制信息给出了绣框运动的方向。
3)针位信息中的位移信息的最大存储范围为0~127,并且只能存储整数形式的值。
在对花样进行处理时,需特别注意位移存储的范围和形式。
2花样显示技术的实现花样文件是以数据的形式存储花样的图像信息,它的存储特点为信息存储量大,所需空间少,便于电脑绣花机刺绣,但其并不直观,为了使用户直观的看到花样的图案,需要实现花样的显示功能。
花样显示是运用Qt 绘图机制将花样文件转换为花样图案显示在屏幕上,方便用户预览花样。
要把任意一个花样显示在固定的显示区域,需做的工作为:①求动态缩放比例,使缩放后的花样尺寸满足显示区域的大小。
②求花样中心点,使花样能居中显示。
对此,我们采用动态调整坐标系的方法,即通过动态缩放坐标系,在固定区域显示动态变化的花样图案。
这样保证了显示图案的完整性和精确性,使绘制出的图案更美观,而且毫不失真。
用图1来说明整个思路。
假想在坐标原点处存在一个大小与原始花样一致的区域,将原始花样整体平移到该区域,再缩放坐标系使花样的大小与显示区域一致。
平移采用的是中心点重合的方法,下面详细介绍。
图1中,(a)为花样原始坐标系花样显示效果,花样文件中的花样信息均是在此坐标系下的数据,(b)为(a)中坐标系经过X 、Y 方向分别按一定的比例K x 、K y 压缩后的坐标系,花样图案即是在此坐标系下显示的。
图1(a)中,X min 为花样在X 方向的最小值,X max 为花样在X 方向的最大值,同理,Y min 、Y max 分别为花样在Y 方向的最小值、最大值。
电脑绣花机花样处理技术的研究及应用A 7A 6A 5A 4B 7B 6B 5B 4C 7C 6C 5C 4A 3A 2A 1A 0B 3B 2B 1B 0C 3C 2C 1C 0电脑绣花机花样处理技术的研究及应用60图1调整坐标系预览花样过程从图1可以看出,对于任何一个花样文件都能找到X min、X max、Y min、Y max,则有花样的宽度和花样的高度的计算公式如下:width=Ymax-Ymin(1)height=Xmax-Ximn(2)中心点在X方向的值为X cx:Xcx=Xmin+height/2(3)中心点在Y方向的值为Y cy:Ycy=Ymin+width/2(4)计算原始花样在假想区域的起绣参考量:Xstart=height/2-Xcx=-Xmin(5)Ystart=width/2-Ycy=-Ymin(6)显然,从式(5)和(6)得到的起绣参考量坐标值都是整数,这样保证了数据的精确度。
起绣参考量与花样文件中的第一针的偏移量的和即为起绣点。
接下来需要确定坐标系压缩比例。
花样的原始宽度和高度见式(1)和式(2),显示花样的区域由用户指定。
假设显示区域为600×400,那么X、Y方向的压缩比例为:Kx=400/height(7)Ky=600/width(8)花样显示的流程图如图2所示。
图5(a)给出了花样显示的效果图。
3花样变换技术的研究由于电脑绣花机的内存有限,为了减少内存的消耗,要求一个花样文件能绣出多种图案,花样变换即可以解决此问题,花样变换技术的应用满足了用户对花样多样性的要求,在电脑刺绣中起了重要的作用。
花样的变换包括花样的缩放、旋转、花样裁剪、花样拼接等。
本文主要以旋转变换为例讨论花样的缩放和旋转变换。
如图3所示,其中,花样上的一点P n+1(△x,△y)逆时针旋转角θ(规定逆时针转为正向旋转),形成新的点P軍n+1(△x,△y)。
旋转后P軍n+1点相对于前一点P n点的坐标可以表示为:△x=rcos(α+θ=△xcosθ+△ysinθ)△y=rsin(α+θ=△xsinθ+△ycosθθ)(9)花样文件只能存储整数形式的偏移量,而从式(9)可以看到,计算过程会产生小数值。
总结失真原因为:1)每针偏移量参与浮点计算会丢失小数部分的数值;2)旋转变换会导致每针信息产生的误差值发生累积现象。
由浮点数参与运算产生的误差不可避免,但是每针的误差较小,如果能消除误差的累积,就能实现不失真变换。
为了消除累积误差,本文采用的是绝对坐标的处理方法,具体做法是:每针的旋转不以上一点为参考点,而是选择某一固定点(此处选为该花样的起绣点),计算出所要旋转的点与该点的绝对坐标,对该坐标值进行旋转操作,之后再用操作点旋转后的坐标计算该点相对于前一点的偏移量,写入花样文件。
这样就有效的消除了累积。
原理说明如图4所示,设有某花样中的三个点PnPn+1Pn+2,逆时针旋转θ后得到P軍nP軍n+1P軍n+2,其中,P为花样的起绣点,各点均以P为旋转基准点。
图3花样旋转过程示意图图4绝对坐标算法旋转示意图由于篇幅有限,花样旋转的流程图不在此赘述,图5(b)给出了旋转处理的效果图。
花样的缩放和旋转原理相同,不同点在于:花样的缩放不需要处理花样控制代码,变换前后保持一致。
但是,花样放大可能出现花样一针的位移量超出花样文件设定的最大存储范围,此时就需要对超出存储范围的针进行分针处理。
4花样放大后长针分针算法实现在花样的放大变换时,当花样的缩放率大于1时,可能出现放大后某些针的位移量大于花样格式固定的存储范围,此时需要分针处理。
由于本文研究的放大最大缩放率为200%,一针信息放大后最多采用两针即可实现存储。
同时,分针过程中X、Y方向的变换率必须相同,否则走针方向会偏离原始花样的走针方向。
另外,分针的中间处不能落针,否则与花样信息发生偏差。
总之,分针过程必须保证以下几点:①长针分成两针;②新针X、Y方向位移变化比率相同;③新添加针应为跳针;④新形成的两针走针位移和应与变换后的走针总长度相同。
5结果分析根据上述的处理方法,在Linux系统下,利用Qt Designer编写程序,运行结果如图5所示。
图5(a)为原始花样显示效果图,从中可以看出花样居中显示,针迹清晰,不存在花样的失真,显示效果很完美;从图5(b)为花样经过37°旋转变换效果图,从中可以看出花样的旋转能保持与原始花样相同的视觉效果;图5(c)为花样缩放50%的效果图;图5(d)为花样不采用绝对坐图2花样显示流程图图5花样处理效果图(下转第63页)表4决策规则表(上接第61页)标处理算法旋转37°后的效果图,从图中可以看出,花样有明显失真。
对比图(a)、(b)、(c)与(d),可以看出,本文所采用的处理方法实现了花样的不失真显示和不失真变换,达到了预期的效果。