一种快速自动生成满印图案的方法及系统与流程

文档序号:26554484发布日期:2021-09-08 00:42阅读:360来源:国知局
一种快速自动生成满印图案的方法及系统与流程

1.本发明涉及满印图案自动生成的技术领域,尤其涉及一种快速自动生成满印图案的方法及系统。


背景技术:

2.对于包括扎染、流体画、水粉画在内的全抽象图,一般的需要做成满印图才能够有很好的艺术效果。但是,在现有技术中要对上述全抽象图做成全满印的花样,并能有很好的满印效果实现起来并不那么容易。
3.满印需要四方连续,同时必然有重复图案。对于时尚设计师来说,设计全抽象图重复图案的难点在于:如果用子图拼接起来,但是因为每张子图都有清晰的边缘,边缘的图案以及颜色都不一样,直接接起来会很尖锐,图案也不好看,大多数情况设计师都是先把子图放置好,每个图之间留好空隙,再人工在空隙出补画上过渡的图案。这样的设计过程不但耗时很长,还不能保证画出来的图案一定好看。
4.同时,对于已有的商业软件,如photoshop或者illustrator等,都不能够自动生成重复图案,尤其是对于全图的子图设计重复图案,需要人工放置子图,再人工补画和过渡。
5.终上所述,在现有技术中,对于生成满印图案,存在不能自动生成重复图案,尤其是对于全图的子图设计重复图案,需要人工放置子图,再人工补画和过渡的技术问题。


技术实现要素:

6.针对上述问题,本发明的目的在于提供一种快速自动生成满印图案的方法及系统,具有能够自动生成重复图案,无需人工放置子图,无需人工补画和过渡的优点。
7.本发明的上述发明目的是通过以下技术方案得以实现的:
8.一种快速自动生成满印图案的方法,包括以下步骤:
9.s1:获取用于生成全图的子图集;
10.s2:从所述子图集中随机获取一张图片作为目标满印图案的背景图,剩余的除所述背景图之外的图片作为用于铺设于所述目标满印图案上的铺设子图集;
11.s3:逐个获取所述铺设子图集中的每一张图片,根据随机生成的包括目标放置位置、旋转角度、子图缩放比例在内的随机铺设参数,对图片进行包括缩放、旋转在内的操作;
12.判断图片以当前所述随机铺设参数中的所述目标放置位置进行摆放时,是否与已铺设的子图重叠或者位于已铺设的子图的最小间距内;
13.若不与已铺设的子图重叠且不位于已铺设的子图的最小间距内,则根据当前所述随机铺设参数将图片铺设于所述背景图上;
14.若与已铺设的子图重叠或者位于已铺设的子图的最小间距内,则重新生成所述随机铺设参数,重复以上铺设步骤,直至图片成功铺设于所述背景图上,或当前图片超过预设铺设实验次数,跳转步骤s3,继续尝试所述铺设子图集中的其他图片。
15.进一步地,在步骤s1中,还包括:
16.选择多个颜色色系相近的图片存入所述子图集,作为生成全图的所述子图集,以确保图案融合后不会有剧烈的颜色冲突。
17.进一步地,在步骤s3之前,还包括:
18.设置子图允许的最小间距m,所述背景图中允许摆放的子图最大数量n,每一张子图的最大实验次数max_retry。
19.进一步地,步骤s3,具体采用以下步骤:
20.s31:初始化所述背景图片的位置矩阵position;其中,所述位置矩阵position的大小与所述背景图相同,并设置所述位置矩阵position的初始值为0;
21.s32:逐个获取所述铺设子图集中的每一张图片,针对每一张图片i执行以下步骤:
22.i:将当前子图的实验次数num_retry赋值为0;
23.ii:随机生成图片的所述目标放置位置(xi,yi),所述旋转角度a,所述子图缩放比例k;
24.iii:将子图缩放为原始大小的k倍,放置于(xi,yi),并顺时针旋转a度,根据生成的位置计算当前子图的待更新位置;
25.iv:将所述待更新位置与所述位置矩阵position进行比较;
26.若所述位置矩阵position上与所述待更新位置重叠的位置上的值均为0,则说明所述背景图上的待更新位置为空,有空间放置当前子图,则把当前子图放置于所述背景图上,同时更新所述位置矩阵position上与所述待更新位置重叠的位置以及四周间距为m的位置的值为1,跳转步骤s32继续铺设下一张子图;
27.若所述位置矩阵position上与所述待更新位置重叠的位置上存在有非0的值,说明已被其他子图占据或不是放置子图的位置,将所述实验次数num_retry加1;
28.当所述实验次数num_retry>=所述最大实验次数max_retry时,代表实验次数已经超过最大实验次数,因不可无限尝试,则判定当前子图无法放置于所述背景图中,跳转步骤s32继续铺设下一张子图;
29.当所述实验次数num_retry<所述最大实验次数max_retry时,代表实验次数还未超过最大实验次数,则跳转到步骤ii,重新生成所述随机铺设参数,重新尝试铺设当前子图。
30.进一步地,若所述位置矩阵position上与所述待更新位置重叠的位置上的值均为0,则说明所述背景图上的待更新位置为空,有空间放置当前子图,则把当前子图放置于所述背景图上,同时更新所述位置矩阵position上与所述待更新位置重叠的位置以及四周间距为m的位置的值为1,具体为:
31.a:初始化当前子图随机放置的掩膜矩阵mask,矩阵的大小与所述背景图片相同,并设置所述掩膜矩阵mask的初始值为0;
32.b:将所述掩膜矩阵mask中当前子图所在位置的值更新为1,代表当前子图放置下去之后,当前子图所在位置不可再放置其他子图,即不允许重叠子图;
33.c:将所述背景图和当前子图进行掩膜运算得到融合图案;
34.d:将所述位置矩阵position中当前子图所在位置和四周间距为m的位置的值更新为1,代表当前子图放置下去之后,当前子图附近m间距的区域也被不可再放置其他子图,即子图不可无缝相连。
35.进一步地,在步骤b之后,还包括:对所述掩膜矩阵mask进行高斯模糊,以及对于所述掩膜矩阵mask上每个点和周边模糊半径内的点进行加权平均。
36.进一步地,步骤c中,所述掩膜运算,具体为:
37.所述融合图案=所述背景图*(1

mask)+当前子图*mask。
38.一种执行如上述的快速自动生成满印图案的方法的系统,包括:
39.子图集获取模块,用于获取用于生成全图的子图集;
40.背景图获取模块,用于从所述子图集中随机获取一张图片作为目标满印图案的背景图,剩余的除所述背景图之外的图片作为用于铺设于所述目标满印图案上的铺设子图集;
41.子图放置模块,用于逐个获取所述铺设子图集中的每一张图片,根据随机生成的包括目标放置位置、旋转角度、子图缩放比例在内的随机铺设参数,对图片进行包括缩放、旋转在内的操作;判断图片以当前所述随机铺设参数中的所述目标放置位置进行摆放时,是否与已铺设的子图重叠或者位于已铺设的子图的最小间距内;若不与已铺设的子图重叠且不位于已铺设的子图的最小间距内,则根据当前所述随机铺设参数将图片铺设于所述背景图上;若与已铺设的子图重叠或者位于已铺设的子图的最小间距内,则重新生成所述随机铺设参数,重复以上铺设步骤,直至图片成功铺设于所述背景图上,或当前图片超过预设铺设实验次数,跳转步骤s3,继续尝试所述铺设子图集中的其他图片。
42.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现如上述的方法。
43.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如上述的方法被执行。
44.与现有技术相比,本发明包括以下至少一种有益效果是:
45.(1)通过提供一种快速自动生成满印图案的方法,包括以下步骤:s1:获取用于生成全图的子图集;s2:从所述子图集中随机获取一张图片作为目标满印图案的背景图,剩余的除所述背景图之外的图片作为用于铺设于所述目标满印图案上的铺设子图集;s3:逐个获取所述铺设子图集中的每一张图片,根据随机生成的包括目标放置位置、旋转角度、子图缩放比例在内的随机铺设参数,对图片进行包括缩放、旋转在内的操作;判断图片以当前所述随机铺设参数中的所述目标放置位置进行摆放时,是否与已铺设的子图重叠或者位于已铺设的子图的最小间距内;若不与已铺设的子图重叠且不位于已铺设的子图的最小间距内,则根据当前所述随机铺设参数将图片铺设于所述背景图上;若与已铺设的子图重叠或者位于已铺设的子图的最小间距内,则重新生成所述随机铺设参数,重复以上铺设步骤,直至图片成功铺设于所述背景图上,或当前图片超过预设铺设实验次数,跳转步骤s3,继续尝试所述铺设子图集中的其他图片。通过上述技术方案,能够自动生成重复图案,无需人工放置子图,无需人工补画和过渡。
46.(2)通过对所述掩膜矩阵mask进行高斯模糊,以及对于所述掩膜矩阵mask上每个点和周边模糊半径内的点进行加权平均。上述技术方案对子图的边缘做了渐变透明处理,做完这个处理之后,边缘和背景图能够得到很好的融合。
47.(3)因为生成的重复图案是自动的计算机行为,不需要人工干预,所以在几秒内就
能够生成多张重复图案以供设计师挑选,设计师还可以直接看到生成的图案来进行包括去掉不合适的子图、调整子图间距、调整子图大小等操作,以达到最终理想的重复图案效果。
附图说明
48.图1为本发明一种快速自动生成满印图案的方法整体流程图;
49.图2为本发明最终生成的满印效果的示意图。
具体实施方式
50.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
51.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
52.第一实施例
53.如图1所示,本实施例提供了一种快速自动生成满印图案的方法,包括以下步骤:
54.s1:获取用于生成全图的子图集。
55.首先,在执行自动生成满印图案之前,需要获取用于生成满印图案全图的子图集合。为了生成的融合图案的效果最佳,优选地,需要选择多个颜色色系相近的图片存入所述子图集,作为生成全图的所述子图集,以确保图案融合后不会有剧烈的颜色冲突。
56.当然,需要说明的是,选择多个颜色色系相近的图片仅是一种优选地技术方案,实际使用中,有些为了追求色彩丰富的满印图案,也可以选择颜色色系不同的图案。
57.s2:从所述子图集中随机获取一张图片作为目标满印图案的背景图,剩余的除所述背景图之外的图片作为用于铺设于所述目标满印图案上的铺设子图集。
58.具体地,为了实现比较好的效果,本发明直接在子图集中选择一张图片作为背景图片,区别于空白图案,本身携带有图案的背景图案,将使得最终形成的满印图片效果更好,并使得铺设后的子图之间的间隙过渡更流畅。
59.s3:逐个获取所述铺设子图集中的每一张图片,根据随机生成的包括目标放置位置、旋转角度、子图缩放比例在内的随机铺设参数,对图片进行包括缩放、旋转在内的操作;判断图片以当前所述随机铺设参数中的所述目标放置位置进行摆放时,是否与已铺设的子图重叠或者位于已铺设的子图的最小间距内;若不与已铺设的子图重叠且不位于已铺设的子图的最小间距内,则根据当前所述随机铺设参数将图片铺设于所述背景图上;若与已铺设的子图重叠或者位于已铺设的子图的最小间距内,则重新生成所述随机铺设参数,重复以上铺设步骤,直至图片成功铺设于所述背景图上,或当前图片超过预设铺设实验次数,跳转步骤s3,继续尝试所述铺设子图集中的其他图片。
60.进一步地,在步骤s3之前,还包括:设置子图允许的最小间距m,所述背景图中允许摆放的子图最大数量n,每一张子图的最大实验次数max_retry。
61.具体地,步骤s3,采用以下步骤:
62.s31:初始化所述背景图片的位置矩阵position;其中,所述位置矩阵position的大小与所述背景图相同,并设置所述位置矩阵position的初始值为0。设置所述位置矩阵position的目的在于将背景图片中每一个位置点是否已经铺设了子图进行标记。
63.s32:逐个获取所述铺设子图集中的每一张图片,针对每一张图片i执行以下步骤。
64.i:将当前子图的实验次数num_retry赋值为0;
65.ii:随机生成图片的所述目标放置位置(xi,yi),所述旋转角度a,所述子图缩放比例k;
66.iii:将子图缩放为原始大小的k倍,放置于(xi,yi),并顺时针旋转a度,根据生成的位置计算当前子图的待更新位置;
67.iv:将所述待更新位置与所述位置矩阵position进行比较,并存在以下两种不同情况,进行不同的处理:
68.(1)若所述位置矩阵position上与所述待更新位置重叠的位置上的值均为0,则说明所述背景图上的待更新位置为空,有空间放置当前子图,则把当前子图放置于所述背景图上,同时更新所述位置矩阵position上与所述待更新位置重叠的位置以及四周间距为m的位置的值为1,跳转步骤s32继续铺设下一张子图。
69.其中,更新所述位置矩阵position上与所述待更新位置重叠的位置以及四周间距为m的位置的值为1的具体步骤为:
70.a:初始化当前子图随机放置的掩膜矩阵mask,矩阵的大小与所述背景图片相同,并设置所述掩膜矩阵mask的初始值为0;
71.b:将所述掩膜矩阵mask中当前子图所在位置的值更新为1,代表当前子图放置下去之后,当前子图所在位置不可再放置其他子图,即不允许重叠子图;
72.进一步地,对所述掩膜矩阵mask进行高斯模糊,以及对于所述掩膜矩阵mask上每个点和周边模糊半径内的点进行加权平均。
73.c:将所述背景图和当前子图进行掩膜运算得到融合图案;其中,所述掩膜运算,具体为:所述融合图案=所述背景图*(1

mask)+当前子图*mask。
74.d:将所述位置矩阵position中当前子图所在位置和四周间距为m的位置的值更新为1,代表当前子图放置下去之后,当前子图附近m间距的区域也被不可再放置其他子图,即子图不可无缝相连。
75.(2)若所述位置矩阵position上与所述待更新位置重叠的位置上存在有非0的值,说明已被其他子图占据或不是放置子图的位置,将所述实验次数num_retry加1;
76.当所述实验次数num_retry>=所述最大实验次数max_retry时,代表实验次数已经超过最大实验次数,因不可无限尝试,则判定当前子图无法放置于所述背景图中,跳转步骤s32继续铺设下一张子图;
77.当所述实验次数num_retry<所述最大实验次数max_retry时,代表实验次数还未超过最大实验次数,则跳转到步骤ii,重新生成所述随机铺设参数,重新尝试铺设当前子图。
78.如图2所示,为最终生成的某一个满印效果的举例示意图。采用本发明的步骤生成满印图案时,设计师可以指定以下参数,更能够满足设计师对生成满印图案的要求:
79.(1)设置模糊的边缘大小;
80.(2)放置子图的时候要不要允许子图互相叠在一起,还是以多大间距分开;其中当允许叠加时将m设置为负数即可;
81.(3)因为生成重复图案是自动的计算机行为,不需要人工干预,所以可以在几秒内就生成重复图案以供设计师挑选,设计师还可以直接看到生成的图案来1)去掉不合适的子图;2)调整子图间距;3)调整子图大小;来达到最终理想的重复图案效果;
82.(4)可以生成无数张可能的重复图案。给设计师很大的挑选空间。
83.第二实施例
84.本实施例提供了一种执行如第一实施例中的快速自动生成满印图案的方法的系统,包括:
85.子图集获取模块1,用于获取用于生成全图的子图集;
86.背景图获取模块2,用于从所述子图集中随机获取一张图片作为目标满印图案的背景图,剩余的除所述背景图之外的图片作为用于铺设于所述目标满印图案上的铺设子图集;
87.子图放置模块3,用于逐个获取所述铺设子图集中的每一张图片,根据随机生成的包括目标放置位置、旋转角度、子图缩放比例在内的随机铺设参数,对图片进行包括缩放、旋转在内的操作;判断图片以当前所述随机铺设参数中的所述目标放置位置进行摆放时,是否与已铺设的子图重叠或者位于已铺设的子图的最小间距内;若不与已铺设的子图重叠且不位于已铺设的子图的最小间距内,则根据当前所述随机铺设参数将图片铺设于所述背景图上;若与已铺设的子图重叠或者位于已铺设的子图的最小间距内,则重新生成所述随机铺设参数,重复以上铺设步骤,直至图片成功铺设于所述背景图上,或当前图片超过预设铺设实验次数,跳转步骤s3,继续尝试所述铺设子图集中的其他图片。
88.本发明还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
89.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
90.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
91.应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
92.本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存
储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。如本说明书实施例所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(net work processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
93.实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子系统执行时,使得所述电子系统执行实施例一所述的方法。在此不再赘述。
94.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

ro m)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(tr ansitory media),如调制的数据信号和载波。
95.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pr am)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitor y media),如调制的
数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
96.另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1