CN108170907B - 一种过程式计算机辅助乱针绣制作方法 - Google Patents
一种过程式计算机辅助乱针绣制作方法 Download PDFInfo
- Publication number
- CN108170907B CN108170907B CN201711316820.1A CN201711316820A CN108170907B CN 108170907 B CN108170907 B CN 108170907B CN 201711316820 A CN201711316820 A CN 201711316820A CN 108170907 B CN108170907 B CN 108170907B
- Authority
- CN
- China
- Prior art keywords
- cross
- needle
- point
- calculating
- embroidery
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- 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/11—Region-based segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Sewing Machines And Sewing (AREA)
Abstract
本发明公开了一种过程式计算机辅助乱针绣制作方法,包括:步骤1,采用图像分割和区域矢量场提取方法提取输入的彩色图像不同的对象区域、区域矢量场;步骤2,根据乱针绣的特点建立包括单根绣线、单个交叉针数字化针法模型;步骤3,对每个对象区域的内部和边缘生成单层针迹,对于区域内部生成绣线分布均匀且能表现区域纹理方向的区域针迹,对于区域边缘生成能表现对象结构的拟合针迹,对所有对象区域执行上述操作得到最终的针迹序列;步骤4,计算每个对象区域的覆盖率,判断当前覆盖率是否达到指定要求,如果没有,则更新参数,继续生成针迹,否则结束当前区域的针迹生成;步骤5,将针迹序列的坐标转换为电脑刺绣机的坐标。
Description
技术领域
本发明属于计算机图像处理与计算机图形学技术领域,尤其涉及一种过程式计算机 辅助乱针绣制作方法。
背景技术
乱针绣是我国现代新兴刺绣艺术,其以针法活泼,线条流畅,层次感强的独特风格驰名中外。乱针绣运针自如,施展空间大,一改传统刺绣针法“密接其针,排比其线” 的方法,而采用纵横交叉、长短不一、疏密重叠、灵活多变的针法刺绣出来的立体画面, 实现“画理”和“绣理”的有机结合,将摄影、油画和素描等视觉稿本再现成具有独特 线条美和立体感的刺绣艺术作品。然而乱针绣目前主要依靠手工创作,从业人员学习周 期长,因此为用户提供模拟乱针绣绣制过程的软件对保护和推广该技艺有重要的意义。
尽管大量工作针对刺绣针迹生成问题展开了研究,它们主要集中在传统刺绣上,如 文献1,李俊,张华,王崇骏:智能化刺绣CAD系统中的工作流技术研究.计算机科 学,2005,32(3):97-100.所述的日本的Tajima、德国的ZSK、美国的Wilcom等刺绣打版 系统,往往需要人工交互编辑每个针迹的坐标序列,且生成的针迹排布规整,仅能处理 简单的图案。
而乱针绣制作过程特点主要包括如下几点:1.针针交叉,绣线相互交错;2.单层针迹生成,乱针绣对区域与边缘使用不同的绣制策略;3.分层叠加,乱针绣绣制过程中是 层层细化的,上层使用更细更短的线条,如在绣制鹰的过程中,会先绣制前景鹰和背景, 然后再细化鹰的眼睛,鼻子等部位。针对上述特点,采用过程化方式解决乱针绣针迹生 成至少需要解决三个主要技术问题:基元定义:定义不同绣线间的交叉方式作为基本针 迹聚集单元;单层绘制:乱针绣在区域内部主要表现区域纹理方向,而边缘则很好地保 持了图像结构;多层叠加:单层针迹间的相互叠加,保证针迹均匀分布。现有技术也涉 及上诉问题,但由于乱针绣的特点使得现有技术无法满足乱针绣的要求。如基元设计, 如文献2Lu J,Barnes C,Diverdi S,et al.RealBrush:painting with examples of physical media[J].Acm Transactions on Graphics,2013,32(4):117.设计弯曲的单根笔触,但乱针绣的线条必须是直线且必须针针交叉,而且区域内部和边缘部分有不同的交叉类型;如单 层的基元排布问题,文献3Secord A.Weighted voronoi stippling[C]//Proceedings ofthe 2nd international symposium on Non-photorealistic animation andrendering.ACM,2002:37-43. 能将画面分成多个大小相同的单元,但不能表现图像中纹理方向也没有对边缘拟合;而 基元的多层叠加研究相对来说较少,文献4Hays J,EssaI.Image and video based painterly animation[C]//Proceedings of the 3rd inter-national symposium on Non-photorealistic animation and rendering.ACM,2004:113-120.不同层间的笔触是相互独立的,而乱针绣 的针迹需要考虑绣面现有针迹,当前针迹需与绣面针迹插空放置来保证绣线分布均匀。
由于乱针绣的特殊性,国内很少有计算机辅助制作的研究,中国专利“一种计算机辅助乱针绣制作方法”,专利号:ZL201010175217.8,中国专利“一种采用遗传算法的 计算机辅助乱针绣制作方法”,专利号:ZL201310211288.2,中国专利“一种基于反应 扩散过程的计算机辅助乱针绣制作方法”,专利号:ZL201310456178.2,中国专利“采 用模糊聚类和随机行走的计算机辅助乱针绣制作方法”,专利号:ZL201310539428.9, 和文献5Yang K,Sun Z.Paint with stitches:a style definition and image-based rendering methodfor random-needle embroidery[J].Multimedia Tools&Applications,2017(11):1-34.等。上述专利中都定义了相应的针法模型,第一个专利侧重于绣线颜色库的建立;第二 个专利通过遗传算法优化适应度函数得到针法模型中的高层参数和针迹序列;第三个专 利建立了针迹与针迹间的拓扑关系,通过5个扩散因子有效的控制针迹方向、长度及颜 色排布策略表现不同的针法要求;第四个专利构建了基元参数与图像特征间的映射关系; 文献5的工作集中在模拟乱针绣的渲染效果。上述方法主要集中在表现乱针绣的工艺效 果,并没有模拟乱针绣层层细分的针迹生成过程。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种过程式计 算机辅助乱针绣制作方法。
为了解决上述技术问题,一种过程式计算机辅助乱针绣制作方法,包括以下步骤:
步骤1,乱针绣的交叉针基元定义:参数化定义乱针绣单根绣线、两根绣线的交叉方式,得到交叉针基元;
步骤2,图像分割以及图像特征提取:以彩色图像作为输入,提取对象区域,并计算区域纵横比,同时提取矢量场;
步骤3,生成单层针迹:对每个对象区域生成针迹,对其分别生成内部和边缘针迹,在区域内部,首先计算交叉针数目和交叉针长度和角度,再通过对区域的多次迭代计算 对应的维诺图从而确定交叉针的交点坐标,根据交叉针参数计算相应的交叉针落点坐标; 在边缘部分,先对边缘采样,得到采样点,再计算边缘交叉针落点坐标,最终针迹是由 多个交叉针基元组成的针迹集合H。
步骤4,生成多层针迹:计算当前区域覆盖率Ocur,判断当前区域是否满足用户定义的覆盖率Om,如果满足,则终止当前对象区域的针迹生成,得到乱针绣绣品针迹序 列,执行步骤5;如果不满足,则先调整交叉针参数,再更新密度场,使用步骤3的方 法再次生成针迹;
步骤5,将步骤4中得到的乱针绣绣品针迹序列转换为电脑刺绣机使用的以毫米为单位的坐标格式,将其输入电脑刺绣机,从而得到实际的乱针绣绣品。
步骤1包括:
参数化定义交叉针模型η={l1,l2,pm,θ,w,c,k},其中pm为交叉针的交点坐标,w代表交叉针线条的宽度,c代表交叉针线条的颜色,κ代表交叉针线条的种类,θ表示交叉 针的交叉角度,l1=(ps1,pe1)代表第一根线条,ps1,pe1分别表示第一个线条的起点坐 标和终点坐标,l2=(ps2,pe2)代表第二根线条,ps2,pe2分别表示第二个线条的起点坐 标和终点坐标。
步骤2包括:
对输入的彩色图像,采用图像解析方法将图像分割成不同的对象区域集合Rm并计算每个对象区域的纵横比Pm和区域面积Sm,其中m=1,…,M,M为对象区域集合的总 数,采用边缘切向流方法提取区域矢量场φ,为每个像素赋值[0,π)。
步骤3包括以下步骤:
步骤3-1:对象区域针迹生成参数初始化:当前层次Γ=1;交叉针线条的长度L由用户确定,令LΓ=L,其中LΓ代表当前层绣线长度,而交叉角度θ的计算方法公式如下:
θ=tan-1Pm;
其中Pm为第m个区域的纵横比。令θΓ=θ,其中θΓ代表当前层交叉针交叉角度,设置变量ρ代表密度图,密度图的大小和输入彩色图像的大小相同,像素的初始值为40; 设置变量Υ图作为覆盖率辅助,变量Υ图中每个像素初始值为0;
步骤3-2:随机生成区域交叉针中心点坐标:通过如下公式计算当前区域基元数目K:
其中Sm为第m个区域的面积。在区域Rm中随机生成K个点,得到初始基元交叉点 集合U={u1,…,uk,…,uK},其中uk=(ukx,uky)代表第k个点的坐标,然后计算集合U对 应的维诺图;
步骤3-3:区域内部交叉针坐标计算:根据步骤3-1中的参数,计算每个交叉针相应的落点坐标;对于区域内部第k个交叉针,计算得到其起点、终点坐标;
步骤3-4:边缘采样:使用Douglas-Peucker算法对区域边缘采样,得到采样点集合E={e1,…,ej,…,en};其中ej是第j个采样点,坐标为(ejx,ejy),j取值范围为1~n;;
步骤3-5:计算边缘交叉针坐标,得到边缘交叉坐标信息;
步骤3-6:计算交叉针集合中其他属性值:通过步骤3-1~步骤3-5得到区域内部和边缘的交叉针,相应的交叉针集合为η={ηi:i=1~N},其中N为交叉针的数目,每个 组合ηi={li1,li2,θi,wi,ci,ki}中还需确定颜色,宽度与类型,交叉针中绣线颜色则为交 叉针交点pmi处的颜色col,则有交叉针线条的颜色ci=col;对于绣线宽度wi,如果当 前区域的绣面覆盖率Ocur>0.6,wi=1,否则wi=2;对于交叉针的交叉类型κi,如 果为y型交叉针,κi=1,否则κi=0;
步骤3-7:最终得到当前区域Rm的单层针迹,对集合中所有对象区域执行步骤3-1~ 步骤3-6,得到整体对象的单层针迹。
步骤3-2中所述计算集合U对应的维诺图,具体包括如下步骤:
步骤3-2-1:计算集合U所对应的维诺图:向现有的维诺图生成方法添加形状约束和 方向约束,生成满足乱针绣工艺的维诺图,得到K个单元格,集合表示形式为 V={V1,…,Vk,…,VK},Vk表示第k个单元格;
步骤3-2-2:更新交叉针中心点坐标:通过如下公式计算离散区域几何矩mh,g:
其中,
x=(x,y),x代表二维坐标系中的坐标,x代表在坐标系横轴上的值,而y代表在坐标系纵轴上的值,ρ(x,y)代表在密度图上x点的密度值,X代表单元格在坐标系横轴上 的个数,Y代表单元格在坐标系纵轴上的个数,xh代表在x上h阶矩,yg代表在y上的g阶 矩;
通过如下公式分别计算m0,0、m1,0以及m0,1:
其中m0,0代表单元格的面积,m1,0代表x的一阶矩,m0,1代表y上的一阶矩。计算第 k个子区域Vk的重心点坐标bk=(xk,yk):
最后得到子区域重心坐标集合B={b1,…,bk,…,bK};
步骤3-2-3:判断是否收敛:通过如下公式计算当前代价函数F(B):
其中|uk-bk|代表uk与bk的距离,这里采用欧式距离计算公式:
其中p1=(x1,y1),p2=(x2,y2)是在二维平面中任意的两个点,更新重心坐标集合,令uk=bk;如果当前的代价函数结果小于阀值0.01,则迭代结束;否则回到步骤3-2-1。
步骤3-3包括如下步骤:
其中ukx代表集合U中uk的横轴坐标,而uky代表集合U中uk的纵轴坐标;φuk代表 在矢量图上坐标为uk的朝向;
步骤3-3-4:对于基元集合H中的任意两个基元ηi与ηj,其中i≠j,基元集合为最终针迹,ηi的落点与ηj的落点会有两种情况出现:第一种是两个基元间出现相交,即基元 中存在相交的线条;第二种则是两个基元间不存在两根线条相交,第一种情况是满足乱 针绣工艺特点,而对于第二种情况需要对其优化:找出相邻两个基元中距离最近的两个 落针点p1,p2,将p1,p2的中点坐标作为p1=p2的坐标,以减少落针次数。
步骤3-5包括如下步骤:
从而得到边缘交叉坐标,将生成的区域交叉针和边缘交叉针加入到基元集合H中。;
步骤4包括以下步骤:
步骤4-1:计算当前区域覆盖率:对于步骤3中得到的单层针迹,如果是第一次生成针迹则将其直接保存,否则将本层的针迹叠加到现有针迹上;检查绣面的上像素覆盖率,使用Bresenham算法将所有针迹以黑色绘制到图Υ上;统计图Υ上被绘制的像素个 数pxielo,计算图Υ上所有像素数目pxiela,则当前绣布的覆盖率Ocur计算公式如下:
步骤4-2:判断当前针迹是否满足要求:如果Ocur>Om则满足要求,结束对该区域 的迭代,Om为用户设置的覆盖率,否则进行参数更新,更新交叉针的长度与交叉角度, 长度更新公式如下:
LΓ+1=0.8×LΓ,
LΓ+1表示更新后的交叉针的长度;
角度更新公式如下:
θΓ+1=0.8×θΓ,
θΓ+1表示更新后的交叉角度;
更新密度场,对于绣线经过的所有像素p,密度更新公式如下:
ρ(p)=ρ(p)-2;
其中p为密度图上的像素点,更新当前层数,计算公式如下:
Γ=Γ+1;
然后返回步骤3-2继续生成单层针迹。
本发明提出了一种过程式计算机辅助乱针绣制作方法,根据乱针绣层层细化的思想, 首先根据乱针绣的交叉特点定义区域交叉针和边缘交叉针;再设计单层针迹生成方法, 区域交叉针聚集表现区域纹理方向,边缘针间相互交叉拟合边缘;最后将单层针迹相互 叠加得到最终针迹。
有益效果:本发明能更好地表现乱针绣工艺特点。边缘针迹的拟合能更好地表现图 像结构;而区域内部的针迹排布更好地表现了纹理特点;同时采用层层叠加的策略更好地模拟了乱针绣真实绣制过程,用户可以更好地理解乱针绣。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其 他方面的优点将会变得更加清楚。
图1是本发明的处理流程示意图。
图2a为区域交叉针,图2b为边缘交叉针。
图3为输入图像。
图4为本发明的对象区域提取结果。
图5为本发明的区域矢量场提取结果。
图6为单层针迹生成结果。
图7为本发明最终乱针绣绣制效果图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示,本发明公开的一种基于联合分割的三维模型构件的自动提取方法,具体包括以下步骤:
步骤一,乱针绣的交叉针基元定义:参数化定义乱针绣单根绣线,两根绣线的交叉方式得到交叉针基元η={l1,l2,pm,θ,w,c,k},其中pm为交叉针的交点坐标,w代表交叉 针线条的宽度,c代表交叉针线条的颜色,κ代表交叉针线条的种类,l1=(ps1,pe1)代 表第一根线条,l2=(ps2,pe2)代表第二根线条,ps和pe分别代表交叉针的起点坐标和 终点坐标,上标的1,2分别代表第一根绣线和第二根绣线;
步骤二,图像分割以及图像特征提取:以彩色图像作为输入,提取包括对象区域Rm, 并计算相关属性区域覆盖率Om、纵横比Pm和区域面积Sm,其中m=1,…,M;同时根据 图像纹理提取矢量场φ,为每个像素赋值[0,π);
步骤三,单层针迹生成:对对象区域Rm内部和边缘分别生成针迹。区域内部,首 先计算交叉针数目K和交叉针长度L和角度θ,再通过多次迭代确定交叉针的交叉点坐标, 再结合交叉针的长度和角度计算交叉针的落点坐标;边缘部分,先对边缘采样,得到边 缘采样点E,生成边缘交叉针的第一根线条,再结合边缘交叉针的属性计算边缘交叉针 的第二根线条。最后根据交叉针所在位置和绣面的覆盖率计算所有交叉针的绣线颜色c 和宽度w。
步骤四,多层针迹生成:计算当前区域覆盖率Ocur,判断当前区域是否满足用户定义的覆盖率,如果满足,则终止当前对象区域的针迹生成;如果不满足,则先调整交叉 针参数,再更新密度场,最后使用步骤三的方法再次生成针迹。
步骤五,将步骤三中得到的乱针绣绣品针迹序列转换为电脑刺绣机使用的以毫米为 单位的坐标格式,将其输入电脑刺绣机,从而得到实际的乱针绣绣品。
1.定义交叉针
步骤11:乱针绣中区域内部与边缘的绣制方法是不一样的,区域交叉针则是为了能 更好地表现方向性,而边缘交叉针是为了更好地拟合边缘。这里通过参数化定义交叉针模型η={l1,l2,pm,θ,w,c,k},pm为交叉针的交点坐标,w代表交叉针线条的宽度,c代 表交叉针线条的颜色,κ代表交叉针线条的种类,l1=(ps1,pe1)代表第一根线条, l2=(ps2,pe2)代表第二根线条,pm和pe分别代表交叉针的起点坐标和终点坐标上标的 1,2分别代表第一根绣线和第二根绣线,最终针迹是由多个交叉针基元组成的针迹集合 H。
2.特征提取
步骤21:在乱针绣中,不同的区域其绣法也不同,所以需要将输入的彩色图像分割成不同的对象区域,并对不同的对象区域采用不同的针法参数以得到最终的绣制结果。本发明采用文献6Felzenszwalb P F,Huttenlocher D P.Efficient Graph-Based ImageSegmentation[J].Inter-national Journal of Computer Vision,2004,59(2):167-181.中所述图 像分割方法将图像分割成M不同的对象区域{R1,R2,...,RM},每个对象区域Rm为像素点 集合,m为对象区域序号,艺术家绘制过程中会对前景更关注,对于分割出来的区域Rm, 用户可以设置相应的最小覆盖率Om,一般最低覆盖率不低于0.7,对于重要区域则需达到0.95;区域的纵横比会影响交叉针的交叉角度,计算区域Rm的外接矩形,再计算区 域的纵横比Pm;乱针绣作品会表现对象的纹理方向,本发明采用文献7Kang H,Lee S, Chui CK.Coherent line drawing[C]//Proceedings of the 5th international symposium onNon-photorealistic animation and rendering.ACM,2007:43-50.提取输入图像的纹理方向φ, 其为每个像素赋一个值,取值范围为[0,π)。
3.单层针迹生成
步骤31:区域Rm针迹生成参数初始化:当前层次Γ=1;当前层交叉针线条的长 度L由用户确定,令LΓ=L,结合步骤21中的交叉角度θ,计算方法
θ=tan-1Pm,
其中Pm为第m个区域的纵横比。令θГ=θ,其中θГ代表当前层交叉针交叉角度;在多层 叠加过程需要考虑绣布线条的分布密度,本发明设计变量ρ代表密度图,图的大小和输入图像的大小一致,像素的初始值为40;为了计算绣线的覆盖率,本发明设计变量Υ图 作为覆盖率辅助,其中每个像素初始值为0;
步骤32:随机生成单个交叉针中心点坐标:计算对象区域基元数目:
其中Sm为第m个区域的面积。采用随机采样的方法在区域选取K个采样点,得到初始基 元交叉点集合U={u1,…,uk,…,uK},其中uk=(ukx,uky)代表第k个点的坐标。对集合 U执行步骤321~步骤323;
步骤321:计算U所对应的维诺图:为了提升效率,使用文献8Hoff K E,Culver T,Keyser J,et al.Fast computation of generalized Voronoi diagrams usinggraphics hardware[C]//Conference on Computer Graphics&InteractiveTechniques.2000:375-376.中 的方法,由于乱针绣交叉针的外形特点和绣线表现图像方向的特点,需要对其改进。改 进一体现在交叉针的外形特点,在投影时,需要将点映射为一个金字塔,改进二是为了 表现纹理朝向,需要将金字塔旋转,旋转角度为点uk的方向其中金字塔的Z轴的 高度计算公式如下:
z=|x-xk|+a|y-yk|;
步骤322:更新第k个交叉针中心点坐标:离散区域几何矩的计算公式如下:
其中,
x=(x,y),x代表二维坐标系中的坐标,x代表在坐标系横轴上的值,而y代表在坐标系纵轴上的值,ρ(x,y)代表在密度图上x点的密度值,X代表单元格在坐标系横轴上 的个数,Y代表单元格在坐标系纵轴上的个数,xh代表在x上h阶矩,yg代表在y上的g阶 矩;
这里分别计算m0,0、m1,0以及m0,1:
其中m0,0代表单元格的面积,m1,0代表x的一阶矩,m0,1代表y上的一阶矩。计算第k个子区域Vk的重心点坐标Bk=(xk,yk),区域重心的计算公式如下:
最后更新uk=Bk,得到子区域重心坐标集合B={B1,…,Bk,…,BK};
步骤323:判断是否收敛:根据子区域重心坐标集合B={B1,…,Bk,…,BK}计算代价函数公式如下:
其中f(|uk-bk|)代表uk与bk的距离,这里采用欧式距离计算公式:
其中p1=(x1,y1),p2=(x2,y2)是在二维平面中任意的两个点,更新重心坐标集合,如 果当前的代价函数结果小于阀值0.01,则迭代结束,否则回到步骤321继续迭代;
步骤33:区域交叉针落点坐标计算:对于区域内部第k个交叉针执行步骤331~步骤332;
步骤332:计算第一根绣线的起点、终点坐标,计算方法如下:
步骤333:计算每个第二根绣线的起点、终点坐标,计算方法如下
步骤334:当前基元的落点没有考虑周边基元的落点信息,对于基元集合H中的任意两个基元ηi与ηj,其中i≠j,ηi的落点与ηj的落点会有两种情况出现:第一种是两个 基元间出现相交,即基元中存在相交的线条;第二种则是两个基元间不存在两根线条相 交,第一种情况是满足乱针绣工艺特点,而对于第二种情况需要对其优化。找出相邻两 个基元中距离最近的两个落针点p1,p2,同时线条方向基本一致时修改两点的坐标,更 新公式如下:
则将其落点进行合并以减少落针次数。
步骤34:边缘采样:使用Douglas-Peucker算法对边缘采样,得到采样点集合 E={e1,…,ej…,eJ},其中ej是第j个点坐标ej=(ejx,ejy);
步骤35:边缘交叉针坐标计算:每次取出相邻的两个采样点ej,ej+1,将其连接得到一根线条,所以其中分别为第一根绣线的起点、终点 坐标;首先计算另一根线条的起点坐标,这里将第一根线条的中点作为当前线条的起点 坐标计算公式如下:
从而得到边缘交叉坐标信息,将生成的区域交叉针和边缘交叉针加入到基元集合H 中;
步骤36:计算交叉针集合中其他属性值:通过上述步骤得到区域内部和边缘的交叉针,相应的交叉针集合为η={ηi:i=1~N},其中N为交叉针的数目,每个组合 ηi={li1,li2,θi,wi,ci,ki}中还需确定颜色,宽度与类型。交叉针中绣线颜色则为交叉针 交点pmi处的颜色col,则有ci=col;绣线宽度与当前绣面覆盖率有关,如果当前区域 的绣面覆盖率Ocur>0.6,wi=1,否则wi=2;对于交叉针的交叉类型为’y’型交叉针, κi=1,反之则κi=0;
步骤37:最终得到区域Rm的单层针迹,对集合中所有对象区域执行上诉操作,得到整体对象的单层针迹;
4.多层针迹叠加策略
步骤41:计算当前区域覆盖率:对于步骤二中生成的单层针迹,如果是第一次生成针迹则将其直接保存,否则将本层的针迹叠加到现有针迹上。检查绣面的上像素覆盖率,使用Bresenham算法将所有针迹以黑色绘制到图Υ上;统计图Υ上被绘制的像素个 数pxielo,计算图Υ上所有像素数目pxiela,则当前绣布的覆盖率计算公式如下:
步骤42:判断当前针迹是否满足要求:如果Ocur>Om则满足要求可结束对该区域 的迭代;否则进行参数更新,更新交叉针的长度与交叉角度,长度更新公式如下:
LΓ+1=0.8×LΓ;
角度更新公式如下:
θΓ+1=0.8×θΓ;
更新密度场,对于绣线经过的像素x,密度更新公式如下:
ρ(x)=ρ(x)-2;
更新当前层数:计算公式如下:
Γ=Γ+1;
继续回到步骤32继续生成单层针迹;
实施例
具体实施过程如下:
步骤一中,分别定义如图2a和图2b所示的区域交叉针和边缘交叉针;
步骤二中,图像分割以及图像特征提取。输入如图3所示的图像,先对其分割得到分割为4个对象区域的集合R={R1,R2,R3,R4},如图4所示,分别制定相应的覆盖率 和计算纵横比;提取相应的的矢量场,如图5所示;
步骤三中,对每个对象区域生成针迹,分别生成内部和边缘针迹。区域内部,首先计算交叉针数目和交叉针长度和角度,再通过对区域的多次迭代计算对应的维诺图从而确定交叉针的交点坐标,根据交叉针参数计算相应的交叉针落点坐标;边缘部分,先对 边缘采样,得到采样点,再计算边缘交叉针落点坐标;最后计算所有交叉针的绣线其他 属性,结果如图6所示;
步骤四中,判断每个区域的覆盖率是否达到指定的覆盖率,如果满足则可停止相应 的针迹生成,否则回到步骤三中继续生成针迹,最终得到完整针迹,如图7所示;
步骤五中,将步骤四中得到的乱针绣绣品针迹序列转换为电脑刺绣机使用的以毫米 为单位的坐标格式,将其输入电脑刺绣机,从而得到实际的乱针绣绣品。
本发明提供了一种过程式计算机辅助乱针绣制作方法,具体实现该技术方案的方法 和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进 和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加 以实现。
Claims (8)
1.一种过程式计算机辅助乱针绣制作方法,其特征在于,包括以下步骤:
步骤1,乱针绣的交叉针基元定义:参数化定义乱针绣单根绣线、两根绣线的交叉方式,得到交叉针基元;
步骤2,图像分割以及图像特征提取:以彩色图像作为输入,提取对象区域,并计算区域纵横比,同时提取矢量场;
步骤3,生成单层针迹:对每个对象区域生成针迹,对其分别生成内部和边缘针迹,在区域内部,首先计算交叉针数目和交叉针长度和角度,再通过对区域的多次迭代计算对应的维诺图从而确定交叉针的交点坐标,根据交叉针参数计算相应的交叉针落点坐标;在边缘部分,先对边缘采样,得到采样点,再计算边缘交叉针落点坐标;
步骤4,生成多层针迹:计算当前区域覆盖率Ocur,判断当前区域是否满足用户定义的覆盖率Om,如果满足,则终止当前对象区域的针迹生成,得到乱针绣绣品针迹序列,执行步骤5;如果不满足,则先调整交叉针参数,再更新密度场,使用步骤3的方法再次生成针迹;
步骤5,将步骤4中得到的乱针绣绣品针迹序列转换为电脑刺绣机使用的以毫米为单位的坐标格式,将其输入电脑刺绣机,从而得到实际的乱针绣绣品。
2.根据权利要求1所述的方法,其特征在于,步骤1包括:
参数化定义交叉针模型η={l1,l2,pm,θ,w,c,κ},其中pm为交叉针的交点坐标,w代表交叉针线条的宽度,c代表交叉针线条的颜色,κ代表交叉针线条的种类,θ表示交叉针的交叉角度,l1=(ps1,pe1)代表第一根线条,ps1,pe1分别表示第一根线条的起点坐标和终点坐标,l2=(ps2,pe2)代表第二根线条,ps2,pe2分别表示第二根线条的起点坐标和终点坐标,最终针迹是由多个交叉针基元组成的针迹集合H。
3.根据权利要求2所述的方法,其特征在于,步骤2包括:
对输入的彩色图像,采用图像解析方法将图像分割成不同的对象区域集合Rm并计算每个对象区域的纵横比Pm和区域面积Sm,其中m=1,…,M,M为对象区域集合的总数,采用边缘切向流方法提取区域矢量场φ,为每个像素赋值[0,π)。
4.根据权利要求3所述的方法,其特征在于,步骤3包括以下步骤:
步骤3-1:对象区域针迹生成参数初始化:区域当前层次Γ=1;交叉针线条的长度L由用户确定,令LΓ=L,其中LΓ代表当前层绣线长度,而交叉角度θ的计算方法公式如下:
θ=tan-1Pm;
其中Pm为第m个区域的纵横比,令θΓ=θ,其中θΓ代表当前层交叉针交叉角度,设置变量ρ代表密度图,密度图的大小和输入彩色图像的大小相同,每个像素的初始值为40;设置变量Υ图作为覆盖率辅助,变量Υ图中每个像素初始值为0;
步骤3-2:随机生成区域交叉针中心点坐标:通过如下公式计算当前区域基元数目K:
其中Sm为第m个区域的面积,在区域Rm中随机生成K个点,得到初始基元交叉点集合U={u1,…,uk,…,uK},其中uk=(ukx,uky)代表第k个点的坐标,然后计算集合U对应的维诺图;
步骤3-3:区域内部交叉针坐标计算:根据步骤3-1中的参数,计算每个交叉针相应的落点坐标;对于区域内部第k个交叉针,计算得到其起点、终点坐标;
步骤3-4:边缘采样:使用Douglas-Peucker算法对区域边缘采样,得到采样点集合E={e1,…,ej,…,en},其中ej是第j个采样点,坐标为(ejx,ejy),j取值范围为1~n,其中n代表采样点个数;
步骤3-5:计算边缘交叉针坐标,得到边缘交叉坐标信息;
步骤3-6:计算交叉针集合中其他属性值:通过步骤3-1~步骤3-5得到区域内部和边缘的交叉针,相应的交叉针集合为η={ηi:i=1~N},其中N为交叉针的数目,每个组合ηi={li1,li2,pmi,θi,wi,ci,κi}中还需确定颜色,宽度与类型,交叉针中绣线颜色则为交叉针交点pmi处的颜色col,则有交叉针线条的颜色ci=col;对于绣线宽度wi,如果当前区域的绣面覆盖率Ocur>0.6,wi=1,否则wi=2;对于交叉针的交叉类型κi,如果为y型交叉针,κi=1,否则κi=0;
步骤3-7:最终得到当前区域Rm的单层针迹,对集合中所有对象区域执行步骤3-1~步骤3-6,得到整体对象的单层针迹。
5.根据权利要求4所述的方法,其特征在于,步骤3-2中所述计算集合U对应的维诺图,具体包括如下步骤:
步骤3-2-1:计算集合U所对应的维诺图:向现有的维诺图生成方法添加形状约束和方向约束,生成满足乱针绣工艺的维诺图,得到K个单元格,集合表示形式为V={V1,…,Vk,…,VK},Vk表示第k个单元格;
步骤3-2-2:更新交叉针中心点坐标:通过如下公式计算离散区域几何矩mh,g:
其中,
x=(x,y),x代表二维坐标系中的坐标,x代表在坐标系横轴上的值,而y代表在坐标系纵轴上的值,ρ(x,y)代表在密度图上x点的密度值,X代表单元格在坐标系横轴上的个数,Y代表单元格在坐标系纵轴上的个数,xh代表在x上h阶矩,yg代表在y上的g阶矩;
通过如下公式分别计算m0,0、m1,0以及m0,1:
其中m0,0代表单元格的面积,m1,0代表x上的一阶矩,m0,1代表y上的一阶矩,计算第k个单元格Vk的重心点坐标bk=(xk,yk):
最后得到子区域重心坐标集合B={b1,…,bk,…,bK};
步骤3-2-3:判断是否收敛:通过如下公式计算当前代价函数F(B):
其中|uk-bk|代表uk与bk的距离,这里采用欧式距离计算公式:
其中p1=(x1,y1),p2=(x2,y2)是在二维平面中任意的两个点,更新重心坐标集合,令uk=bk;如果当前的代价函数结果小于阀值0.01,则迭代结束;否则回到步骤3-2-1。
6.根据权利要求5所述的方法,其特征在于,步骤3-3包括如下步骤:
步骤3-3-4:对于基元集合H中的任意两个基元ηi与ηj,其中i≠j,基元集合为最终针迹,ηi的落点与ηj的落点会有两种情况出现:第一种是两个基元间出现相交,即基元中存在相交的线条;第二种则是两个基元间不存在两根线条相交,第一种情况是满足乱针绣工艺特点,而对于第二种情况需要对其优化:找出相邻两个基元中距离最近的两个落针点p1,p2,同时线条方向一致时修改两点的坐标,将p1,p2的中点坐标作为p1=p2的坐标。
7.根据权利要求6所述的方法,其特征在于,步骤3-5包括如下步骤:
从而得到边缘交叉坐标,将生成的区域交叉针和边缘交叉针加入到基元集合H中。
8.根据权利要求7所述的方法,其特征在于,步骤4包括以下步骤:
步骤4-1:计算当前区域覆盖率:对于步骤3中得到的单层针迹,如果是第一次生成针迹则将其直接保存,否则将本层的针迹叠加到现有针迹上;检查绣面的上像素覆盖率,使用Bresenham算法将所有针迹以黑色绘制到图Υ上;统计图Υ上被绘制的像素个数pxielo,计算图Υ上所有像素数目pxiela,则当前绣布的覆盖率Ocur计算公式如下:
步骤4-2:判断当前针迹是否满足要求:如果Ocur>Om则满足要求,结束对该区域的迭代,Om为用户设置的覆盖率,否则进行参数更新,更新交叉针的长度与交叉角度,长度更新公式如下:
LΓ+1=0.8×LΓ,
LΓ+1表示更新后的交叉针的长度;
角度更新公式如下:
θΓ+1=0.8×θΓ,
θΓ+1表示更新后的交叉角度;
更新密度场,对于绣线经过的所有像素p点,密度更新公式如下:
ρ(p)=ρ(p)-2;
其中p为密度图上的像素点,更新当前层数,计算公式如下:
Γ=Γ+1;
然后返回步骤3-2继续生成单层针迹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711316820.1A CN108170907B (zh) | 2017-12-12 | 2017-12-12 | 一种过程式计算机辅助乱针绣制作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711316820.1A CN108170907B (zh) | 2017-12-12 | 2017-12-12 | 一种过程式计算机辅助乱针绣制作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170907A CN108170907A (zh) | 2018-06-15 |
CN108170907B true CN108170907B (zh) | 2020-06-23 |
Family
ID=62524965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711316820.1A Active CN108170907B (zh) | 2017-12-12 | 2017-12-12 | 一种过程式计算机辅助乱针绣制作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170907B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111519361A (zh) * | 2020-04-09 | 2020-08-11 | 东华大学 | 一种具有乱针绣风格的写意机绣工艺 |
CN113362443B (zh) * | 2021-06-30 | 2022-11-18 | 珠海必要工业科技股份有限公司 | 刺绣效果图的生成方法和装置、存储介质、电子设备 |
CN113298081B (zh) * | 2021-07-26 | 2021-11-09 | 湖南师范大学 | 湘绣制版过程中的图像数据处理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100266237B1 (ko) * | 1998-02-24 | 2000-09-15 | 김보영 | 용해성소재를이용한공간층이형성된입체자수제조방법 |
US7928983B2 (en) * | 2007-06-04 | 2011-04-19 | Daedal Doodle, LLC | Interactive labyrinth curve generation and applications thereof |
CN103793549A (zh) * | 2013-11-04 | 2014-05-14 | 南京大学 | 采用模糊聚类与随机游走的计算机辅助乱针绣制作方法 |
CN104063562A (zh) * | 2014-07-14 | 2014-09-24 | 南京大学 | 一种基于色彩聚类的乱针绣铺底绣稿生成方法 |
CN105256478A (zh) * | 2015-11-25 | 2016-01-20 | 冯志刚 | 一种计算机辅助手工刺绣的方法和设备 |
CN105701836A (zh) * | 2016-03-02 | 2016-06-22 | 丹阳正则绣艺术有限公司 | 利用图像处理软件辅助设计乱针绣的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6836695B1 (en) * | 1998-08-17 | 2004-12-28 | Soft Sight Inc. | Automatically generating embroidery designs from a scanned image |
-
2017
- 2017-12-12 CN CN201711316820.1A patent/CN108170907B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100266237B1 (ko) * | 1998-02-24 | 2000-09-15 | 김보영 | 용해성소재를이용한공간층이형성된입체자수제조방법 |
US7928983B2 (en) * | 2007-06-04 | 2011-04-19 | Daedal Doodle, LLC | Interactive labyrinth curve generation and applications thereof |
CN103793549A (zh) * | 2013-11-04 | 2014-05-14 | 南京大学 | 采用模糊聚类与随机游走的计算机辅助乱针绣制作方法 |
CN104063562A (zh) * | 2014-07-14 | 2014-09-24 | 南京大学 | 一种基于色彩聚类的乱针绣铺底绣稿生成方法 |
CN105256478A (zh) * | 2015-11-25 | 2016-01-20 | 冯志刚 | 一种计算机辅助手工刺绣的方法和设备 |
CN105701836A (zh) * | 2016-03-02 | 2016-06-22 | 丹阳正则绣艺术有限公司 | 利用图像处理软件辅助设计乱针绣的方法 |
Non-Patent Citations (3)
Title |
---|
A controllable stitch layout strategy for random needle embroidery*;周杰等;《Journal of Zhejiang University SCIENCE C》;20140923;全文 * |
乱针绣仿真中针绣图块路径排布规划研究;徐绕山;《计算机仿真》;20170315;全文 * |
计算机辅助乱针绣制作技术研究;陈圣国等;《计算机学报》;20110315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108170907A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Turquin et al. | A sketch-based interface for clothing virtual characters | |
Ersoy et al. | Skeleton-based edge bundling for graph visualization | |
CN108170907B (zh) | 一种过程式计算机辅助乱针绣制作方法 | |
Olsen et al. | Sketch-based modeling: A survey | |
Mehra et al. | Abstraction of man-made shapes | |
De Paoli et al. | SecondSkin: sketch-based construction of layered 3D models | |
Ding et al. | A survey of sketch based modeling systems | |
CN106709171B (zh) | 一种基于重复模式发现的印花图案生成方法 | |
Qian et al. | Gourd pyrography art simulating based on non-photorealistic rendering | |
Fickel et al. | Stereo matching and view interpolation based on image domain triangulation | |
Olsen et al. | Image-assisted modeling from sketches. | |
JP2019091436A (ja) | 3d配置のタイプに応じた2d画像の分類 | |
Tasse et al. | Feature-based terrain editing from complex sketches | |
Wang et al. | Image-based building regularization using structural linear features | |
Lu et al. | Depth-aware image vectorization and editing | |
Zhang et al. | NK-CDS: A creative design system for museum art derivatives | |
CN103473433A (zh) | 一种基于反应扩散过程的计算机辅助乱针绣制作方法 | |
Chowdhury et al. | Garment ideation: Iterative view-aware sketch-based garment modeling | |
Olsen et al. | A Taxonomy of Modeling Techniques using Sketch-Based Interfaces. | |
Guan et al. | Automatic embroidery texture synthesis for garment design and online display | |
Liu et al. | Whole-cloth quilting patterns from photographs | |
Tao et al. | Semi-automatic generation of stream surfaces via sketching | |
Divya Udayan et al. | Animage-based approach to the reconstruction of ancient architectures by extracting and arranging 3D spatial components | |
Tao et al. | Peeling the flow: A sketch-based interface to generate stream surfaces | |
Dekkers et al. | A sketching interface for feature curve recovery of free-form surfaces |
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 |