一种计算机辅助乱针绣制作方法

文档序号:6602516阅读:550来源:国知局
专利名称:一种计算机辅助乱针绣制作方法
技术领域
本发明属于计算机软件、计算机图像处理和计算机图形学技术领域,涉及一种计 算机辅助乱针绣制作软件方法,具体地说,是一种直接输入数字彩色图像输出用于电脑刺 绣机制作乱针绣绣品针迹序列的方法,实现乱针绣工艺过程的计算机化。
背景技术
乱针绣是由常州艺人杨守玉教授于二十世纪三十年代创立的一种刺绣艺术,它摆 脱了我国几千年传统刺绣“排比其针,密接其线”绣法的拘束,形成了独特的“长短参差,斜 线交叉,分层搀色”乱针技艺,利于艺人自由表达思想情感,实现“画理”与“绣理”的有机结 合;乱针绣长于绣制油画、摄影和素描等稿本,绣品具有针法活泼、线条流畅、色彩丰富、层 次感强、风格独特等特点,不仅迥别于中国的其它种类绣品,在世界范围内也是极其珍贵的 艺术作品,多次作为国礼赠送给外国政府或领导人收藏,体现了其精美的艺术价值和深厚 的文化价值。目前江苏省已将其列入首批非物质文化遗产,中国政府也已将其列入世界非 物质文化遗产申请计划。然而,与传统刺绣相比,乱针绣工艺错综复杂,从临摹、铺底,到上 色、调色,要采用“素描稿”与“色彩稿”对表现技法、操作步骤和创作效果进行反复思考和酝 酿,主要工艺过程迄今仍依赖于手工操作,作品创作周期长,成本昂贵,只作为政府馈赠礼 品用于国际礼物交往,而在市场上却难觅其踪,无法为普通人所拥有和认可;同时,乱针绣 对绣者的技艺素质要求非常高,不仅要掌握“画理”和熟练的绘画技巧,而且能掌握“绣理” 和熟练的刺绣技巧,绣者的成才之路艰辛而漫长,导致乱针绣人才日趋匮乏,对这一传世绝 技的保护和传承构成了极大威胁。采用计算机技术辅助乱针绣的制作可以缩短乱针绣绣品 的制作周期,降低制作成本,减小绣者的劳动强度,吸引更多年轻人学习和传承这一独特工 艺。然而,由于乱针绣工艺十分复杂,国内外尚未见有关计算机辅助乱针绣的研究报 道。与传统刺绣工艺采用的平面绣法不同,乱针绣将不同方向、长短、粗细和颜色的针迹 交叉重叠堆积来表现物体的体积感、前后物体的空间关系及色彩变化。已有诸如文献1田 绪安,李丙社,徐一兵刺绣图像轮廓图的计算机生成系统.西北纺织工学院学报,1998, 12(2) 196-198,文献2孟波,谢琪,陈世福电脑刺绣CAD系统的设计与实现.计算机应用 与软件,2001,18(10) 12-14.和文献3吴一民,李佳,李海涛电脑刺绣CAD系统的设计与 实现.微计算机应用,2007,28 (12) =1335-1338.等所述计算机辅助刺绣方法均只支持平面 绣法,都是先采用边缘检测或色彩聚类将输入数字图像分割为互不交叉的若干闭合区域, 再采用诸如平包针、席纹、平针等平面针法或随机针法对每个区域分别进行填充而生成针 迹。这种方法要求同一区域内的针迹首尾顺次相连且针迹间尽量避免产生交叉,所生成绣 品的区域间缺乏颜色过渡,色彩层次单一,难以满足乱针绣工艺的需要。

发明内容
发明目的本发明所要解决的技术问题是针对现有技术的不足,提供一种计算机辅助乱针绣制作方法。为了解决上述技术问题,本发明公开了一种计算机辅助乱针绣制作方法,包括以 下步骤步骤1绣线颜色子集选择依据待绣制图像的色彩构成从可用绣线颜色中选择指 定数量的绣线颜色以确保只使用指定数量颜色绣线生成绣品的色彩质量。绣线颜色数量根 据电脑刺绣机硬件条件指定,如6针的电脑刺绣机指定绣线颜色数为6种。步骤2铺色将待绣制图像分割为若干大的色块区域,色块区域大小取决于图像 本身的色彩分布情况,色块区域的面积不宜小于100像素,但不严格要求所有区域均超过 该大小,然后对每个色块区域从步骤1选定的颜色子集中选择与其颜色距离最小的绣线采 用交叉针迹填充绣品针迹方案图像,待绣制图像中的每一个点对应绣品针迹方案图像中一 个正方形区域。例如绣品针迹方案图像长宽可取为原待绣制图像的5倍,即原图上的一个 点对应针迹方案图像上的5像素*5像素的一个正方形区域。这里一个交叉针迹指的是由 两条相互交叉的针迹构成的一个针迹集合。其中颜色距离的计算根据所选择的色彩空间决 定,若选用RGB色彩空间表示,颜色距离可采用欧氏距离或加权欧氏距离。步骤3精绣采用一个正方形的的滑动窗口首先覆盖待绣制图像 左上角,然后从 左至右,再从上至下滑动该窗口遍历待绣制图像,窗口大小根据需要生成的针迹长度设定, 每次在该窗口所在位置根据待绣制图像中颜色分布寻找交叉针迹;步骤4针迹顺序优化步骤2、3生成了 一个针迹的序列,本步骤在不改变不同颜色 针迹的覆盖关系的前提下将同种颜色的针迹尽量连续排列,然后对连续排列的同种颜色的 针迹顺序按照针迹的位置进行调整,将距离较近的针迹调整到一起,如果调整顺序后相邻 的两针迹距离(第一针迹的终点与第二针迹的起点之间的距离)小于一定阈值,则插入一 个针迹连接前一针迹的终点与后一针迹的起点使刺绣机能连续走针,使原来相邻独立的针 迹在绣制时可以连续走针。步骤5针迹坐标转换前面步骤生成的针迹起点和终点是以像素为单位的,本步 骤根据所使用的绣线宽度,将像素坐标转换为电脑刺绣机使用的以毫米为单位的坐标格 式,从而生成电脑刺绣机格式的乱针绣针迹序列;步骤6,将所述乱针绣针迹序列输入电脑刺绣机,从而得到相应的绣品图像。由于电脑刺绣机硬件条件的限制,不可能同时使用很多颜色的绣线,例如6针刺 绣机可以同时使用6种颜色的绣线,如果针迹序列中使用超过6种颜色的绣线,绣制时需要 频繁地停机换线,将严重影响绣品制作效率。本发明步骤1提供了一种将精英选择遗传算法(Elite Genetic Algorithm)应用 于绣线颜色选择的方法,依据待绣制图像的色彩构成从可用绣线颜色中选择指定数量的绣 线颜色以确保只使用指定数量颜色绣线生成绣品的色彩质量。假设完整的绣线颜色集T= {、,、,....,tm}中共有m种绣线,从中选取一个k个 元素的子集S = Is1, ...,sk},其中Si e T,i = 1,...,k,k为指定的颜色数,对待绣制图 像中所有像素用该子集中的最相似的颜色替换可重建一幅与原图像相似但有一定色差的
图像,用公式d^A)表示重建图像与原图像之间的色差,其中p、q分别为待绣制图
/ = 0 J = O
像的宽度和高度,i、j为图像中像素X、y方向以像素为单位的坐标值(这里采用图像处理领域常用的一种坐标系图像左上角为坐标原点,往右为X轴正向,往下为y轴正向),Cij表 示待绣制图像像素(i,j)的颜色值,D(Cij,S1)表示颜色值Cij与k个元素的子集中的元素 S1的距离,颜色距离的计算可以采用RGB、YUV或其它颜色空间中色彩距离的计算方法。本 步骤采用精英选择遗传算法求得一个颜色子集S,使得重建图像与原图像之间具有较小的 色差。本发明步骤2铺色包括以下步骤步骤21平滑图像通过图像去噪算法去除待绣制图像的细节特征,保留大色块的 轮廓特征,本步骤的目的是避免步骤22按颜色分割图像时产生大量面积小于一定像素数 的区域,所述的大色块区域指面积大于80 100像素的区域。去噪算法可以选择任何在 去噪的同时能够很好地保持图像边缘的算法。例如Rudin、Osher和Fatemi于1992年在
Nonlinear total variation based noise removal algorithms. Physica D,1992, 60(1-4) =259-268.中提出的一种基于全变分(Total Variation, TV)模型的去噪方法。步骤22分割平滑后的图像对平滑后的图像中所有像素点使用步骤1选出的绣线 颜色子集中最相似的颜色替换,图像被自动分割成若干区域,每个区域对应的颜色将作为 铺色阶段填充该区域所用的绣线颜色。步骤23计算每个区域交叉针迹的方向参数根据区域的颜色特征,计算区域针迹 方向(以针迹与X轴的夹角表示)。对步骤22得到的每一个区域采用下面的方法计算该区 域针迹方向步骤23a,首先求得待绣制图像的亮度图像I (i,j)并据此计算出亮度图像的梯度 「帥’))-
其中Gx、Gy分别为对亮度图像使用Sobel算子得到的X和y方向的差分值。步骤23b,根据亮度梯度按下面的公式计算出θ值。
θ = 1/2arctan(Vx/Vy)’ 其 中
W为区域内像素的集合,(u, ν)为区域内像素点坐标。

步骤23c,根据亮度梯度按下面的公式得到β的值
为区域内像素的集合,(u,v)为区域内像素点坐标。
步骤23d,以θ+β和θ-β作为交叉针迹中两针迹的方向(与χ轴方向的夹角)。步骤24根据一定的针迹密度对每个区域采用选定的颜色使用交叉针迹对每个区 域进行填充。主要步骤包括步骤24a,求该区域外接矩形,外接矩形的边平行于x、y坐标轴;步骤24b,根据针迹方向计算单根针迹的长度,针迹的宽度设定为1像素,计算出 单根针迹覆盖所述区域的面积;步骤24c,根据设定的覆盖的面积比例计算外接矩形区域内填充所需的交叉针迹 的数量;
步骤24d,根据交叉针迹的数量在外接矩形内平均分布针迹;步骤24e,去除上一步骤求得的针迹中不在区域内的像素点,以剩下的像素点构成 的直线段的起点和终点作为针迹的起点和终点。本发明步骤3需重复迭代执行多次,首先采用较大尺寸的滑动窗口遍历图像生成 较长的针迹,然后逐步减小滑动窗口的尺寸生成较短的针迹。迭代的次数和窗口尺寸根据 用户对绣品的质量要求确定。对每个滑动窗口按以下步骤确定交叉针迹步骤31采用试探法寻找交叉针迹位置,使用不同的斜率寻找直线段,所述直线段 路径上的所有像素点颜色相似即与直线段起点的颜色距离小于阈值,则根据该直线段的起 点和终点坐标生成针迹的起点和终点坐标,主要步骤如下步骤31a,在正方形滑动窗口中的左上角(正方形滑动窗口中的x方向左半部分, y方向上半部分)和左下角(正方形滑动窗口中的χ方向左半部分,y方向下半部分)中随 机选择两个点作为两直线段的起点;
步骤31b,确定在该正方形滑动窗口范围内颜色距离的最大阈值,如果滑动窗 口中两像素的颜色距离小于该阈值,则认为是相似的,否则认为不相似。最大阈值根据 滑动窗口内的颜色构成动态确定,假设滑动窗口边长为n,则阈值最大值为3万S,其中
为滑动窗口内坐标(相对于滑动窗口左上角)为(i,j)的像素颜
色值,
为该区域内像素颜色的平均值,D(c^cav)为两颜色的距离。为减
少计算量可直接使用颜色距离的平方值进行判断,最大阈值取18S2。步骤31c,使用不同的斜率进行试探寻找符合条件的直线段,要求直线段路径上的 所有像素点颜色相似,具有较小的色差。对某一给定斜率,首先计算该直线段上的下一个像 素点颜色与起点颜色的距离,如果该距离值小于指定的阈值,则认为颜色相似,继续对该直 线下一点进行处理;如果该距离值大于指定的阈值则终止处理,判断已找到的直线段的长 度是否符合要求,如果长度太短则放弃该线段,选择另一斜率值进行试探。当找到的直线段 长度超出该阈值时直接返回,以防止在某些颜色变化平缓的区域内产生过长的针迹。本步 骤首先采用较小的颜色距离阈值进行试探,如果没有找到符合条件的直线段,则增加颜色 距离阈值重复执行本步骤,当颜色距离阈值大于步骤步骤31b中计算出的最大阈值时,则 从本步骤31c退出,从步骤31a重新开始继续滑动该窗口遍历待绣制图像的其他位置。步骤31d,在原图像上找到符合条件的直线段后,对直线段起点和终点分别在绣品 针迹方案图像对应的正方形中随机选取一个未被针迹覆盖的像素作为针迹的起点和终点。步骤32确定针迹的颜色,在选定针迹的起点和终点后,根据直线段起点在绣品针 迹方案图像中所对应正方形区域的覆盖情况来确定针迹的颜色。如果该正方形区域已覆盖 的像素比例小于20%,直接根据待绣制图像中对应像素点的颜色在绣线颜色子集中选择一 个与其颜色距离最小的绣线颜色;如果该正方形区域已覆盖的像素比例大于20%,则按下 面的步骤来计算针迹的颜色,其中η表示正方形区域的边长步骤32a,求出针迹方案图像中该正方形区域内所有点的颜色和,未被覆盖的部分 求和时用线颜色子集中与待绣制图像中对应像素点颜色距离最小的绣线颜色替代,记该值 为C·。
步骤32b,计算待绣制图像对应点的颜色与CSUffl的差Cdiff,Cdiff = n*n*C g-C■,其 中C g为待绣制图像中对应像素点的颜色。步骤32c,计算修补色= a*Cdiff+(l-a)*C g,用绣线颜色子集中与CMP最相 似的绣线颜色作为针迹颜色,其中参数a G (0,1]为颜色调节因子,用于调节针迹使用的 绣线颜色与待绣制图像中对应像素颜色的相似程度。a取较大值时目标图像远看色彩更接 近待绣制图像;a较小则所选颜色与待绣制图像中对应像素颜色更接近,但远看时视觉效 果不及a取较大值的情况。本发明步骤4针迹顺序优化,包括以下步骤步骤41分裂长针迹对于步骤2、3得到的针迹序列中超过一定长度阈值的针迹进 行处理,将其按照设定的长度阈值分裂为若干长度小于长度阈值的针迹,长度阈值一般可 设为15 25像素,也可根据刺绣机的特性适当加大该值。步骤42根据颜色重新排列针迹遍历前面步骤中生成的针迹序列,如果前一个 针迹的颜色与针迹序列中前面另一个针迹的颜色相同,且两个针迹之间的所有针迹均无交 叉关系,则将前一个针迹的位置提前到所述另一个针迹后,从而将颜色相同的针迹连续排 列;步骤43连接相邻同色且距离一定阈值像素以内的针迹,所述一定阈值一般为2 5像素;本步骤对连续排列的相同颜色的针迹顺序进行调整,使得相邻两针迹中前一针迹 的终点与后一针迹的起点距离缩小;如果该距离小于所述阈值,将其连接起来不会对绣品 整体视觉效果产生大的影响,则插入一个针迹连接前一针迹的终点与后一针迹的起点使得 电脑刺绣机能够连续走针。本发明前4步骤生成了一个针迹序列,针迹的起点和终点坐标以像素为单位,针 迹方案图像尺寸为原图宽度和高度放大相同倍数。电脑刺绣机走针时使用的坐标一般以毫 米为单位,步骤5将以像素为单位的针迹起点和终点坐标转换为毫米为单位的坐标,其方 法较为简单,只需将以像素为单位的数据乘以绣线的宽度数据就可以了。有益效果本发明提供了一种输入数字彩色图像,自动生成乱针绣针迹序列的计 算机辅助乱针绣制作方法,利用本方法生成的针迹序列可以由电脑刺绣机批量、高效率生 成乱针绣绣品,降低乱针绣绣品的生产成本。


下面结合附图和具体实施方式
对本发明做更进一步的具体说明,本发明的上述和 /或其他方面的优点将会变得更加清楚。图1是本发明所公开方法总体流程示意图。图2是本发明中铺色阶段交叉针迹方向参数的示意图。图3是本发明实施例中对待绣制图像荷花的绣制过程效果图。
具体实施例方式本发明公开了一种计算机辅助乱针绣制作方法,包括以下步骤步骤1,绣线颜色子集选择依据待绣制图像的色彩构成从可用绣线颜色中选择 指定数量的绣线颜色以确保只使用指定数量颜色绣线生成绣品的色彩质量。
步骤2,铺色将待绣制图像分割为若干大的色块区域,然后对每个色块区域从步 骤1选定的颜色子集中选择与其最相似的颜色采用交叉针迹填充绣品针迹方案图像,待绣 制图像中的每一个像素对应绣品针迹方案图像中一个正方形区域。步骤3,精绣采用一个正方形的滑动窗口遍历待绣制图像,在滑动窗口中根据颜 色的相似性寻找交叉针迹,逐步加大针迹的密度。步骤4,针迹顺序优化步骤2、3生成了一个针迹的序列,本步骤在不改变不同颜 色针迹的覆盖关系的前提下将同种颜色的针迹尽量连续排列,然后对连续排列的同种颜色 的针迹顺序按照针迹的位置进行调整,将距离较近的针迹调整到一起,如果调整顺序后相 邻的两针迹距离(第一针迹的终点与第二针迹的起点之间的距离)小于一定阈值,例如距 离在3像素以内,则插入一针,使原来相邻独立的针迹在绣制时可以连续走针。步骤5,针迹坐标转换前面步骤生成的针迹起点和终点是以像素为单位的,本步 骤根据所使用的绣线宽度,将像素坐标转换为电脑刺绣机使用的以毫米为单位的坐标格 式。步骤6,将所述乱针绣针迹序列输入电脑刺绣机,从而得到相应的绣品。本发明的实施的关键技术主要涉及绣线颜色子集选择、铺色、精绣和针迹顺序优 化,下面介绍实施的主要流程1.绣线颜色子集选择人工绣制乱针绣作品时会使用大量不同颜色的绣线,但使用电脑刺绣机不可能使 用太多不同颜色的绣线。这主要是因为电脑刺绣机的硬件条件限制,电脑刺绣机的针数决 定了可以同时使用的绣线颜色数,例如对6针的电脑刺绣机可同时使用6种。如果使用的绣 线颜色数量过多,绣制时必须频繁地停机换线,刺绣机无法高速运转,严重影响绣制效率。本步骤从可用绣线颜色集中根据图像的颜色构成选择指定数量的颜色子集作为 后面各阶段的针迹颜色。本步骤输入可用绣线颜色集合和彩色图像,输出被选择的颜色子 集。绣线颜色集合中的每个颜色需要提供的参数包括1)绣线编号本编号主要用于为电脑刺绣机换线时识别绣线;2)绣线颜色值根据所使用的颜色空间不同,数据格式不同,可使用计算机中最 常用的RGB颜色空间,分别给出3分量的值。假设完整的绣线颜色集T = {、,t2,. . . .,tffl}中共有m种绣线,需要从中选取一 个k个元素的子集S= {81,...,%},其中& G T,i = 1,...,k,k为刺绣机允许使用的颜 色数,对6针的刺绣机k可设置为6,如果允许刺绣时多次换线可加大k的值。对待绣制图 像中所有像素用该子集中的最相似的颜色替换可重建一幅与原图像相似但有一定色差的
图像,用公式^乞“^叫^“表示重建图像与原图像之间的色差,其中?…分别为待绣制 / = 0 j = 0
图像的宽度和高度,CiJ表示待绣制图像像素(i,j)的颜色值,D(CiJ, Sl)表示颜色值Cij与 k个元素的子集中的元素Sl的距离,颜色距离的计算方法可以根据选择的颜色空间采用相 应的计算方法。如果采用三维向量表示RGB色彩空间中一个颜色值,C = (r,g,b)’,两个不同 颜色值Ci、c2之间的距离通常可采用欧氏距离来表示,考虑到人眼对亮度信号更为敏感, 而RGB三分量对亮度信号的贡献不同,对RGB三分量差值赋予不同的权值,对颜色的色彩
10距离计算公式进行调整,可以使计算出的距离差异更符合人眼的视觉特点,计算公式为 本步骤采用改进的精英选择遗传算法求得一个颜色子集S,使得重建图像与原图 像之间具有较小的色差。遗传算法是一类借鉴生物界自然选择和自然遗传机制的随机化搜 索算法,直接以适应度作为搜索信息,无需导数等其它辅助信息。使用遗传算法首先需要对 问题空间编码,将问题空间映射到搜索空间,然后以一定概率进行选择操作、交叉操作、变 异操作,使平均适应度高的模式在每一代保留下来,经逐次迭代,找到最大适应度的个体, 达到优化的目的。本发明所述改进的精英选择遗传算法包括以下特征1)基因的编码形式对可用绣线集中的每种绣线定义一个基因位,值为1表示该颜色的绣线被选中, 若值为0则表示该绣线未被选中,则可用长度为m的二进制串表示一个个体,记<,其中gi取值为0或1,且满足式条件f义=k。2)交叉算子遗传算法标准的交叉算子不能保证交叉生成的新个体满足上面的条件,无法直接 应用于本发明。本发明对标准的单点交叉算子进行了改造。EPl、P2为两个父母个体,Cl、 c2为交叉生成的子个体,交叉过程如下①初始化交叉生成的子个体C1、C2,所有基因位为0 ;②对所有基因位,若父母个体?1和父母个体p2中对应位置上的基因值均为1,则 将父母个体Pi和父母个体P2中对应位置基因值均为1的位置的值均置为0,将子个体Cl、 个体c2与父母个体Pl和父母个体p2中对应位置的值置为1,记满足该条件的基因位个数为 s,令参数d = k_s。③生成一个区间[l,d_l]之间的随机整数cp。将父母个体Pl中前cp个值为1的 基因位复制到子个体Cl对应的基因位置,剩余的d-Cp个值为1的基因位复制到子个体c2 对应的基因位置。将父母个体P2中前CP个值为1的基因位复制到子个体(32对应的基因位 置,剩余的d-Cp个值为1的基因位复制到子个体Cl对应的基因位置。3)变异算子与交叉算子类似,标准的变异算子也存在同样的问题,当选中某个值为1的基因 位,将其值变为0,则会使个体中值为1的基因位数量减少,反之则会使个体中值为1的基因 位数量增加。本发明对标准的变异算子进行改造,方法为当某个值为1的基因位被选中发 生变异时,随机选择一个为值0的基因位同时发生变异;而当某个值为0的基因位发生变异 时,随机选择一个值为1的基因位同时进行变异。4)适应度函数的定义遗传算法每次在选择操作前,必须计算当前群体中每个个体的适应度,适应度值
越大的个体被选择的概率越大。公式
说明使用指定的颜色子集重建的图像
与原图色差越小,说明该个体的性能越好,越接近最优解,该个体的适应度值应该越大,因此取g g min Die,,作为该个体的适应度。 ;=0 ;=0 1图3的实施例中选择市场上常见DMC的绣线集,共有454种颜色,种群大小为100, 随机生成初始种群,最大遗传代数500,采用精英选择遗传算法,每次遗传保留上一代的最 优解,如果连续50代遗传最优解保持不变,则终止算法,否则当遗传代数超过最大代次数 时终止。执行交叉算子的概率P。为0. 8,变异的概率Pm为0. 15。2.铺色铺色阶段采用相对规则的交叉针迹填充大色块,主要步骤为步骤2. 1.平滑绣稿通过图像去噪算法去除待绣制图像的细节特征,保留大色块 的轮廓特征。如果直接根据待绣制图像的颜色分布进行区域分割,往往会出现大量面积很小 的区域,步骤2. 1在分割前对待绣制图像进行平滑,去除一些细节特征,可以避免这种 情况。去噪算法选择可以选择任何在去噪的同时能够很好地保持图像边缘的算法。例 如 Rudin、Osher 禾口 Fatemi 于 1992 年在文献 Nonlinear total variation based noise removalalgorithms. Physica D,1992,60 (1-4) :259_268.中提出的一种基于全变分(Total Variation, TV)模型的去噪方法。对于附图3a所示的待绣制图像,平滑之后的图像见附图 3b。步骤2. 2分割平滑后的图像对平滑后的图像中所有像素点使用步骤1选出的绣 线颜色子集中颜色距离最小的颜色替换,图像被自动分割成若干区域,实施例中附图3a所 示的待绣制图像分割为28个区域,每个区域对应的颜色将作为铺色阶段填充该区域所用 的绣线颜色。步骤2. 3计算每个区域交叉针迹的方向参数根据区域的颜色特征,计算区域针 迹与x轴的夹角。计算方法如下1)求得待绣制图像的亮度图像I,对每个像素亮度值为0. 212671*R+0. 715160*G+ 0. 072169*B,R、G、B为该像素颜色在RGB色彩空间中三分量的值;该转换是RGB图像转换为 灰度图像时的一种标准方法。
子得到的X和y方向的差分值; 3)计算每个区域的e值,该值表示交叉针迹的总体方向,如附图2所示,其中AB、 ⑶为针迹,EF为两交叉针迹的角平分线,两条针迹的方向由参数e和0确定,其与X轴的
夹角分别为e+e和e-旦。
,其中 2)计算图像的亮度梯度▽/ =
Gx、Gy分别为对亮度图像使用Sobel算 W为区域内像素的集合;(u,v)为W中像素点的坐标;计算每个区域日的值,该值为交叉针迹中针迹夹角的1,如附图2所示,
P
W为区域内像素的集合;(U,V)为W中像素点的坐标;4)以e+e和e-e作为交叉针迹中两针迹的方向(与X轴方向的夹角)。步骤2. 4根据用户指定的针迹密度对每个区域采用选定的颜色使用交叉针迹对 每个区域进行填充,所述针迹密度一般设定为10% 30%,主要步骤包括1)求该区域外接矩形,外接矩形的边平行于x、y坐标轴,遍历区域中所有的点,求 得x,y坐标的最小值left、top,最大值right、bottom,则外接矩形的左上角坐标为(left, top),右下角坐标为(right, bottom)。2)根据针迹方向计算单根针迹的长度。步骤如下①调整针迹方向角度参数到范围(_f,f];②估算针迹的长度,设针迹与x轴夹角为alpha,若alpha的绝对值小于f,则 长度 length = (right-left+1)/cos (alpha),若 alpha 的绝对值大于 f,则 length = fabs ((bottom一top+1)/sin(alpha));3)根据期望覆盖的面积比例计算外接矩形区域内填充所需的交叉针迹的数量,设 两个方向针迹上一步求得的长度为lengthl、length2,针迹宽度设定为1像素因此直接用 针迹长度作为针迹覆盖矩形区域的面积,则针迹数量为1 ineCount = ((bottom_top+l)氺(right_left + l)氺iScale氺percentage) / (lengthl+length2);其中iScale为针迹方案图像尺寸与源待绣制图像的尺寸比,实施例该值为5,即 待绣制图像中一个点对应针迹方案图像中边长为5像素的正方形区域;percentage为用户 设定的铺色阶段针迹覆盖面积的百分比,实施例中取为20 %。4)根据针迹数量在外接矩形内平均分布针迹。若针迹与x轴夹角小于f,则在外 接矩形上边界上等距分布lineCoimt个点,以这些点为起点按针迹方向绘制出针迹;若针 迹与x轴夹角大于f,则在外接矩形左边界上等距分布lineCoimt个点,以这些点为起点按 针迹方向绘制出针迹。5)去除上一步骤求得的针迹中不在区域内的像素点,以剩下的像素点构成的直线 段的起点和终点作为针迹的起点和终点。实施例中图3a所示待绣制图像经过平滑、分割后图像,铺色的结果如图3c所示。3精绣阶段在铺色的基础上根据图像的局部颜色特征寻找合适的针迹,通过一个正方形的滑 动窗口遍历待绣制图像,在滑动窗口中寻找交叉针迹,逐步加大针迹的密度。该步骤需重复 迭代执行多次。首先采用较大尺寸的滑动窗口遍历图像生成较长的针迹,然后逐步减小滑 动窗口的尺寸生成较短的针迹。迭代的次数和窗口尺寸根据用户对绣品的质量要求确定,迭代的次数越多,绣品的质量越高,具体流程描述如下1)设定初始滑动窗口尺寸和滑动的步长以及窗口尺寸的最小阈值,初始时一般将 滑动窗口边长设定为5 20像素,滑动的步长为窗口尺寸的1/4 3/4,窗口尺寸的最小阈 值设定为2 4像素。2)设定当前窗口尺寸允许的最短针迹长度和最长针迹长度,最短针迹长度为滑动 窗口边长,最长针迹长度为1. 1 2倍的滑动窗口边长。3)寻找交叉针迹,对原图像从左至右从上到下滑动窗口,对每一个窗口进行如下 步骤(a)计算已绣制的图像中对应当前窗口的部分已被覆盖的比例;(b)如果被覆盖的比例大于90%,跳过步骤(c) (d),处理下一窗口 ;(c)在窗口左上部选择一点作为起点,用不同的斜率向右下方向进行试探寻找长 度在最短针迹长度和最长针迹长度之间的直线段,且直线段上像素颜色相近,如果找到根 据该直线段的起点和终点位置生成一个针迹;在窗口左下部选择一点作为起点,用不同的 斜率向右上方向试探寻找长度在最短针迹长度和最长针迹长度之间的直线段,且直线段上 像素颜色相近,如果找到根据该直线段的起点和终点位置生成一个针迹。4)减小窗口尺寸和窗口滑动的步长。实施例中初始窗口边长尺寸为8像素,窗口 滑动步长为窗口尺寸的1/2,每次迭代时窗口边长尺寸为上一次窗口边长尺寸的1/2。5)如果窗口尺寸不小于预先设定的阈值,转步骤2 ;否则算法终止。实施例中该阈 值为2,总共迭代3次,窗口边长分别为8、4、2像素,最长针迹长度为窗口尺寸的1.5倍,最 短针迹长度为窗口尺寸。上面步骤3)中用不同斜率试探寻找符合条件的直线段的过程描述如下(其中n 表示滑动窗口的边长,flagl为真表示找到左上角为起点的符合条件的直线段,flag2为真 表示到左上角为起点的符合条件的直线段)1)初始化 flagl、flag2 为假;2)计算滑动窗口中两个像素的颜色距离的最大阈值,该最大阈值选定为18S2,其

为滑动窗口的边长,DKpCU为颜色距 V n i=o j=0yi i=o j=0
离,Cij为滑动窗口内坐标(相对于滑动窗口左上角)为(i,j)的像素点的颜色,Cav为滑
动窗口内像素颜色的平均值,S用来衡量滑动窗口内颜色分布的情况,该值越小说明该滑动
窗口内像素颜色一致性越高,该值越大说明该滑动窗口内的颜色变化越剧烈。3)本实施例中,颜色距离阈值设定为1000,一般可以根据需要设定为500 2000, 如果未找到距离小于1000的直线段,则加大颜色距离阈值重复寻找直线段,每次增加的颜 色距离阈值范围800-1200之间,本实施例中增加1000,当颜色距离阈值大于步骤31b中计 算出的最大阈值时,则退出步骤31。4)在正方形区域的左上角的1/4区域内随机选定一点(startx,starty);5) k初值为小于n的一个随机整数每次减1直到其值为1,重复执行下面步骤(5. 1)判断起点为(startx,starty)斜率为k/n的方向上的像素颜色最相近的绣 线颜色是否与起点相同或与起点的颜色距离是否小于颜色距离与值,若是将其作为线段终 点,继续循环判断下一像素,当线段长度大于1. 5*n或遇到某像素点与起点颜色距离大于颜色距离值时返回已求得的线段终点;(5. 2)若找到的线段长度大于等于n,将该线段加入针迹表,置flagl = true,在针 迹方案图像上绘制该线段,退出当前循环,转步骤7);6) k初值为小于n的一个随机整数每次减1直到其值为1,重复执行下面步骤(6. 1)功能与步骤(5. 1)相同,直线段斜率改为为n/k ;(6. 2)同步骤(5. 2);7)在正方形区域的左下角的1/4区域内随机选定一点(startx,starty);8) k初值为小于n的一个随机整数每次减1直到其值为1,重复执行下面步骤(8. 1)功能同步骤(5. 1),直线段斜率为_k/n ;(8. 2)若找到的线段长度大于等于n,将该线段加入针迹表,置flag2 = true,在针 迹方案图像上绘制该线段,退出当前循环,转步骤10);9) k初值为小于n的一个随机整数每次减1直到其值为1,重复执行下面步骤(9. 1)功能同步骤(8. 1),直线段斜率为-n/k ;(9. 2)功能同步骤(8. 2);10)如果flagl、flag2均为假则增加颜色距离阈值(原阈值增加100作为新的阈 值);否则,算法终止;11)如果颜色距离阈值大于18S2,算法终止;12)转步骤 4)。在窗口内找到符合条件的直线段后,在该直线段的起点或终点在目标图像中对应 的区域中随机选取一个未被绣线覆盖的点作为针迹起点或终点。确定了针迹的起点和终点后还需要确定针迹的颜色,由于机器绣制只能使用少量 颜色,待绣制图像中大部分区域的颜色与所选择的颜色子集中的颜色存在色差,如果在一 个区域中反复使用同一种颜色的绣线进行绣制,则作品的视觉效果与原图会有很大差异。 不同颜色的邻近点远看时混合产生新的颜色,本发明通过在邻近点使用前面选择的颜色子 集中少量颜色进行混合,远看时产生与原图像更接近的颜色。本方法待绣制图像中的一个像素在针迹方案图像中对应一个正方形区域,采用该 正方形区域中各像素点的RGB平均值作为混合产生的新颜色。在选定针迹的起点和终点 后,根据直线段起点在针迹方案图像中所对应正方形区域的覆盖情况来确定针迹的颜色。 方法如下1)如果该正方形区域已覆盖的像素比例小于20%,直接根据待绣制图像中对应 像素点的颜色在绣线颜色子集中选择一个与该颜色最接近的绣线颜色;2)如果该正方形区域已覆盖的像素比例大于20%,则按下面的步骤来计算针迹 的颜色,其中n表示正方形区域的边长①求出该正方形区域内所有点的颜色和,未被覆盖的部分求和时用待绣制图像中 对应像素点颜色最相近的绣线颜色替代,记该值为CSUffl。②计算待绣制图像对应像素点的颜色C g与Csum的差Cdiff :Cdiff = n*n*C g-Csum ;③计算修补色CMp = a *Cdiff+ (1-a ) *Corg,用Crep在绣线颜色子集中寻找最相似的 颜色作为针迹颜色,其中参数a G (0,1]为颜色调节因子,用于调节针迹使用的绣线颜色 与待绣制图像中对应像素颜色的相似程度。a取较大值时目标图像远看色彩更接近待绣制图像;a较小则所选颜色与待绣制图像中对应像素颜色更接近,但远看时视觉效果不及a 取较大值的情况。实施例中a取0.5。图3中包含原始图像、平滑后的图像、铺色效果、精绣过程效果及交叉针迹的局部 效果图。实施例中图3a所示待绣制图像,图3b为平滑后的图像,图3c为辅色后的图像,图 3d、图3e、图3f为精绣阶段3次遍历待绣制图像后得到的绣品针迹方案图像,图3g所示为 生成的绣品针迹方案图像局部放大图像。4.针迹顺序优化前面步骤生成了一个不连续的针迹序列,不能直接为刺绣机使用,需要对针迹顺 序进行调整,将相同颜色的针迹尽量集中,对靠近的针迹进行连接,生成连续的针迹序列。 本步骤分为以下步骤步骤41,分裂长针迹对于步骤2、3得到的针迹序列中超过一定长度的针迹进行 处理,将其按照设定的长度阈值分裂为若干长度小于长度阈值的针迹。步骤42,根据颜色重新排列针迹遍历前面步骤中生成的针迹序列,如果针迹1的 颜色与针迹序列中前面针迹2的颜色相同,且针迹1与针迹2到该针迹之间的所有针迹均 无交叉关系,则将针迹1的位置提前到针迹2后。步骤43,连接相邻同色且距离很近的针迹步骤4. 2将若干颜色相同的针迹连续 排列,本步骤对连续排列的相同颜色的针迹顺序进行调整,使得相邻两针迹中前一针迹的 终点与后一针迹的起点距离尽量短。如果两针迹距离很近,将其连接起来不会对绣品整体 视觉效果产生大的影响,则插入一个短的针迹使得电脑刺绣机能够连续走针。下面具体描述针迹优化过程1)分裂长针迹本步骤对针迹序列中的每一个针迹进行检查,根据其x方向及y方向的跨度(起 点与终点坐标x方向和y方向的距离)判断是否需要将其分裂为多个短针迹,如果超过设 定的阈值(下面阈值用MAXSL表示)则分裂,否则不处理。实施例中阈值为20,即x方向或 y方向跨度超过20,将其分裂为多个针迹。设x方向跨度为xd,y方向跨度为yd,则如果xd、yd均小于等于MAXSL,不处理,否则按下面方法处理;如果xd > yd,将原针迹平均分为 splits 段,splits = (xd+MAXSL-1)/MAXSL ;如果xd <= yd,将原针迹平均分为 splits 段,splits = (yd+MAXSL-1)/MAXSL ;2)根据颜色重新排列针迹本步骤输入未排序的针迹列表stitches,输出按颜色重新排列的针迹列表 newstitches,算法描述如下当针迹列表stitches不空时重复执行以下步骤;从针迹列表stitches中取出第一个针迹stitch ;保存针迹stitch的颜色curColor ;将针迹stitch加入到新的针迹列表newstitches中;遍历针迹stitches中的所有针迹,对每一针迹如果该针迹与stitches表头至该针迹之间的所有针迹都不相交,则将该针迹放 A newstitches,/A stitches 巾HP余
3)连接相邻同色且距离很近的针迹;上一步骤将针迹序列按颜色分成若干段,每一段颜色相同但仍然不连续,本步骤 对每一段分别进行处理,在段内调整针迹顺序。本步骤输入未排序的针迹列表stitches,输 出按位置重新排列的针迹列表newstitches,算法描述如下从stitches中取出第一个针迹stitch ;将 stitch 力口入至Ij newstitches 中;保存stitch的终点位置为curPos ;当针迹列表stitches不空时重复执行下面步骤;遍历stitches中的所有针迹,对每一针迹计算针迹起点和终点与curPos的距 罔;取出起点或终点与curPos距离最小的针迹stitch,如果是该针迹终点与curPos 距离最小,则将该针迹起点和终点对换;如果上面的最小距离小于3,生成一个新的针迹,起点为curPos,终点为stitch起 点,将该新的针迹加入newstitches ;将 stitch 力口入 newstitches ;置curPos 为 sticth 的终点。本发明提供了一种计算机辅助乱针绣制作方法的思路及方法,具体实现该技术方 案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的 普通技 术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进 和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以 实现。
权利要求
一种计算机辅助乱针绣制作方法,其特征在于,包括以下步骤步骤1,绣线颜色子集选择根据待绣制图像的色彩构成从当前绣线颜色中选择一定数量的绣线颜色作为绣线颜色子集;步骤2,铺色将待绣制图像分割为若干色块区域,然后对每个色块区域从所述绣线颜色子集中选择与色块区域颜色距离最小的颜色绣线,采用交叉针迹填充生成绣品针迹方案图像,待绣制图像中的每一个点对应绣品针迹方案图像中一个正方形区域,所述交叉针迹为由两条相互交叉的针迹构成的一个针迹集合;步骤3,精绣用一个正方形的的滑动窗口覆盖待绣制图像的左上角,然后滑动该窗口遍历待绣制图像,每次在该窗口所在位置根据待绣制图像中的颜色分布寻找交叉针迹;步骤4,针迹顺序优化调整针迹顺序,使步骤2和步骤3中相邻独立的针迹在绣制时连续走针,从而得到乱针绣绣品针迹序列;步骤5,针迹坐标转换根据所使用的绣线宽度,将以像素为单位的针迹起点和终点坐标转换为电脑刺绣机使用的以毫米为单位的坐标格式,从而生成电脑刺绣机格式的乱针绣针迹序列;步骤6,将所述电脑刺绣机格式的乱针绣针迹序列输入电脑刺绣机,从而得到相应的乱针绣绣品。
2.根据权利要求1所述的一种计算机辅助乱针绣制作方法,其特征在于,步骤1中,使 用改进的精英选择遗传算法选择一定数量的绣线颜色作为绣线颜色子集,所述绣线颜色数 量与刺绣机针数相同。
3.根据权利要求1所述的一种计算机辅助乱针绣制作方法,其特征在于,所述步骤2包 括以下步骤步骤21,平滑图像去除待绣制图像中的细节特征,保留色块区域的轮廓特征;步骤22,分割图像对平滑后的图像中所有像素点使用步骤1选出的绣线颜色中颜色 距离最小的颜色替换,将图像分割成若干区域,每个区域对应的颜色为填充该区域所用的 绣线颜色;步骤23,计算每个区域交叉针迹的方向参数根据区域的颜色特征,计算区域针迹的 方向;步骤24,填充每个区域,根据一定的针迹密度对每个区域采用选定的绣线颜色使用交 叉针迹进行填充。
4.根据权利要求1所述的一种计算机辅助乱针绣制作方法,其特征在于,步骤3中,先 用一定尺寸的滑动窗口遍历图像生成对应的针迹,再减小滑动窗口的尺寸迭代遍历图像生 成对应的针迹;后一次遍历图像时滑动窗口的面积为前一次遍历图像时滑动窗口的面积的 3/4 1/4 ;迭代次数为两次以上。
5.根据权利要求4所述的一种计算机辅助乱针绣制作方法,其特征在于,所述步骤3中 在滑动窗口中寻找交叉针迹包括以下步骤步骤31,使用不同的斜率寻找直线段,所述直线段路径上的所有像素点颜色相似即与 直线段起点的颜色距离小于阈值,则根据该直线段的起点和终点坐标生成针迹的起点和终 点坐标;步骤32,根据直线段起点在绣品针迹方案图像中所对应正方形区域中已覆盖的面积与正方形区域面积的比例确定针迹的颜色。
6.根据权利要求1所述的一种计算机辅助乱针绣制作方法,其特征在于,所述步骤4包 括以下步骤步骤41,分裂长针迹将针迹序列中超过长度阈值的针迹进行处理,将该针迹按照长 度阈值分裂为若干长度小于长度阈值的针迹;步骤42,根据颜色重新排列针迹遍历针迹序列,如果当前针迹的颜色与针迹序列中 前面另一个针迹的颜色相同,且所述当前针迹与所述前面另一个针迹之间的所有其它针迹 均无交叉关系,则将当前针迹的位置提前到所述前面另一个针迹后,从而将颜色相同的针 迹连续排列;步骤43,连接相邻同色且距离小于一定阈值的针迹对连续排列的相同颜色的针迹顺 序进行调整,对每一针迹选择与其终点位置距离最小的针迹作为其下一针迹,如果两针迹 距离小于所述阈值,则插入一个针迹连接前一针迹的终点与后一针迹的起点使刺绣机能连 续走针。
7.根据权利要求5所述的一种计算机辅助乱针绣制作方法,其特征在于,所述步骤31 包括以下步骤步骤31a,在正方形滑动窗口中的左上角和左下角中随机选择两个像素作为两直线段 的起点;步骤31b,确定在所述正方形滑动窗口范围内颜色距离的最大阈值,如果滑动窗口中两 个像素的颜色距离小于该阈值,则判定为相似,否则为不相似;最大阈值根据待绣制图像中 滑动窗口内的颜色构成确定;步骤31c,使用不同的斜率寻找直线段,所述直线段路径上的所有像素点颜色相似即与 直线段起点的颜色距离小于一定阈值;先采用一定的颜色距离阈值寻找直线段,如果未找 到,则加大颜色距离阈值重复寻找直线段,当颜色距离阈值大于步骤31b中计算出的最大 阈值时,则退出步骤31,继续滑动该窗口遍历待绣制图像;步骤31d,在待绣制图像上找到符合条件的直线段后,对直线段的起点和终点分别在所 述绣品针迹方案图像对应的正方形区域中随机选取一个未被针迹覆盖的像素作为针迹的 起点和终点。
8.根据权利要求5所述的一种计算机辅助乱针绣制作方法,其特征在于,所述步骤32 包括以下步骤步骤32a,计算已找到的直线段起点在绣品针迹方案图像中所对应正方形区域中已覆 盖的面积与正方形区域面积的比例;步骤32b,如果所述比例小于一定阈值,直接根据待绣制图像中对应像素点的颜色在绣 线颜色子集中选择一个与其颜色距离最小的绣线颜色;如果该正方形区域已覆盖的像素比 例大于一定阈值,则进行以下步骤计算针迹的颜色;步骤32c,求出该正方形区域内所有点的颜色和,未被覆盖的部分求和时用绣线颜色子 集中与待绣制图像中对应像素点颜色距离最小的绣线颜色替代,记该值为CSUffl ;步骤32d,计算待绣制图像对应点的颜色与值CSUffl的差值Cdiff,Cdiff = n*n*C。rg-CSUffl,其 中C g为待绣制图像中对应像素点的颜色,n为该正方形区域的边长;步骤32e,计算修补色C,ep = a *Cdiff+(1_ a ) *C g,在绣线颜色子集中选择与C,ep颜色距离最小的绣线颜色作为针迹颜色,其中参数a G (0,1]为颜色调节因子。
9.根据权利要求3所述的一种计算机辅助乱针绣制作方法,其特征在于,所述步骤23 包括以下步骤步骤23a,计算待绣制图像的亮度图像I(i,j),并计算所述亮度图像的梯度 Gx(hJ)] ,其中GX、GV分别为对亮度图像使用Sobel算子得到的x和y方向的图像差分;计算x、y方向的图像差分采用的卷积操作内核分别为步骤23b,根据亮度图像的梯度计算0值,算法如下 ’其中 W为区域内像素的集合,(u,v)为w中像素点的坐标; 步骤23c,根据亮度图像的梯度计算3值,算法如下 / W为区域内像素的集合,(U,v)为W中像素点的坐标;步骤23d,以e+0和0-0作为交叉针迹中两针迹的方向,即与X轴方向的夹角。
10.根据权利要求3所述的一种计算机辅助乱针绣制作方法,其特征在于,所述步骤24 包括以下步骤步骤24a,计算所述区域的外接矩形,所述外接矩形的边分别平行于x、y坐标轴; 步骤24b,根据针迹方向计算单根针迹的长度和宽度计算单根针迹覆盖所述区域的面积;步骤24c,根据设定的覆盖面积的百分比计算所述外接矩形区域内填充所需的交叉针 迹的数量;步骤24d,根据交叉针迹的数量在外接矩形内平均分布针迹;步骤24e,去除针迹中不在所述区域内的像素点,以剩下的像素点构成的直线段的起点 和终点作为针迹的起点和终点。
全文摘要
本发明公开了一种计算机辅助乱针绣制作方法,包括以下步骤步骤1,绣线颜色子集选择选择一定数量的绣线颜色作为绣线颜色子集;步骤2,铺色将待绣制图像分割为若干色块区域,然后对每个色块区域从所述绣线颜色子集中选择与色块区域颜色距离最小的颜色绣线,填充生成绣品针迹方案图像;步骤3,精绣用一个正方形的的滑动窗口遍历待绣制图像,每次在该窗口所在位置根据待绣制图像中的颜色分布寻找交叉针迹;步骤4,针迹顺序优化调整针迹顺序,使步骤2和步骤3中相邻独立的针迹在绣制时连续走针,从而得到乱针绣绣品针迹序列;步骤5,针迹坐标转换;步骤6,输入电脑刺绣机,得到相应的乱针绣绣品。
文档编号G06F17/50GK101859335SQ20101017521
公开日2010年10月13日 申请日期2010年5月18日 优先权日2010年5月18日
发明者孙正兴, 张岩, 陈圣国, 项建华 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1