首页> 中国专利> 一种手机动漫人物及背景创作方法

一种手机动漫人物及背景创作方法

摘要

本发明公开了一种手机动漫人物及背景创作方法,采用如下五种方法中的任一种方法对原图像进行处理或者采用前4中方法中的任一种方法与方法5对源图像混合处理:方法1:非对角线元素消隐方法:方法2:随机模糊化方法;方法3:珠帘效果模拟方法;方法4:图像移色方法;方法5:单色化和钝化方法。该方法构思新颖,不但趣味性强,实现简单,而且数据量小,易于实施,适于在手机上运行。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-09-17

    授权

    授权

  • 2012-09-05

    实质审查的生效 IPC(主分类):G06T13/40 申请日:20111216

    实质审查的生效

  • 2012-06-27

    公开

    公开

说明书

技术领域

本发明涉及一种手机动漫人物及背景创作方法。

背景技术

作为动漫产业的一个分支,我国手机动漫产品也获得了长足的发展,目前 主要包括动漫彩信、四格手机漫画、动画短片和回合制手机游戏等。它们兼有 文化产品和信息产品的双重特性:作为文化产品无疑需要遵循社会主义文化产 品的普遍原则,但又不宜直白说教,而要寓教于乐;而作为信息产品则希望尽 可能地引入先进的计算机技术,以期在提高产品质量的同时提高其生产效率。

艺术上的朦胧是一种美学境界。较之清晰、分明的真彩数码作品,它像是 一种有特殊美感的、只可意会却难于言表的艺术形式。如果将真彩色数码照片 类比为国画中的工笔花鸟、是浓妆艳抹的贵妇人,那么各种朦胧作品就像是国 画中的泼墨山水,是不施粉黛的村姑,真乃:“水光潋滟晴方好,山色空濛雨 亦奇”。较之色彩艳丽、鲜明的彩色数码照片,本发明所追求的若隐若现、山 色空濛,将留给观众无穷的想象空间。

目前尚未发现有与本发明相似的此类具有套色或黑白朦胧画作品效果的动 漫作品的报道。

发明内容

本发明所要解决的技术问题是提供一种手机动漫人物及背景创作方法,本发 明的手机动漫人物及背景创作方法数据处理量小,易于实施,适于在手机上运行。

发明的技术解决方案如下:

一种手机动漫人物及背景创作方法,采用如下五种方法中的任一种方法对原 图像进行处理或者采用前4中方法中的任一种方法与方法5对源图像混合处理:

方法1:非对角线元素消隐方法:

方法2:随机模糊化方法;

方法3:珠帘效果模拟方法;

方法4:图像移色方法;

方法5:单色化和钝化方法。

所述的非对角线元素消隐方法的步骤为:

将原图像网格化,每一个网格的对角线处的像素保留色彩,其他位置的像素 清零为白色,即用白色像素替换;

网格化对应的网格密度gridSize为小于5像素;所述的网格密度即正方形网 格的边长。

方法2中的随机模糊化方法步骤为:

步骤(1).将预留存放输出图像即目标图像的数据空间清零为白色;

步骤(2).从原图像的左上角开始,参数i为行计数器,参数j为列计数器, 参数i和参数j均以gridSize作为递增步长,参数k为辅助计数器,k从0递增 到gridSize,达到gridSize后再清零;按步骤(3)~(4)遍历全图,即完成随机模糊 化的过程;

步骤(3).在每一个以gridSize为边长的网格中,按以下方法确定源、终两 类像素点即pixelSou和pixelDes位置:

pixelSou=souBase+(i+k+yrand)*lineByte+(j+k+xrand)*pixelByte;

pixelDes=desBase+(i+k)*lineByte+(j+k)*pixelByte;

其中souBase和desBasewe分别为源、终两类像素点的基地址,lineByte 为图像每行字节数,pixelByte为图像每像素字节数,i和j为相应行与列的序 数,yrand和xrand都是随机数,随机数在0-gridsize之间随机取值;

步骤(4).取出源像素点蓝、绿、红数据赋予对应输出像素点

*(pixelDes)=*(pixelSou);

*(pixelDes+1)=*(pixelSou+1);

*(pixelDes+2)=*(pixelSou+2)。

珠帘效果模拟方法为:

步骤1:制作珠帘模板:设定珠帘参数制作珠链模板,所述的珠帘参数包括 珠链列距、珠体行距、珠体直径、珠体连接线直径【在实例中,连线直径为 2】

步骤2:将所述的珠帘模板作为蒙板叠加在方法1或方法2形成的图像上得 到最终的具有珠帘效果的新图像。

图像移色方法的步骤为:

步骤(1).选取2个色彩样板点,根据2个色彩样板点的位置,从图像中分别 查找出它们的像素对应的蓝、绿、红数值,分别记作b1,g1,r1,和b2,g2,r2;

步骤(2).处理点X,Y初始座标设为图像左上角,即X,Y均设为0;

步骤(3).通过以下步骤(4)~(9)逐列、逐行地按像素即处理点推进:

步骤(4).取得当前处理点的蓝、绿、红数值,分别记作sb,sg,sr;

步骤(5).如abs(sb-b1)<areaExtanDegree且abs(sg-g1)<areaExtanDegree且 abs(sr-r1)<areaExtanDegree则记b1为b,记g1为g,记r1为r,转步骤(7)进行图 像移色操作;其中,areaExtanDegree为区域扩展度;反之,如判别条件不满足 则转步骤(8)保留原色;【移色操作会带来山雨欲来的效果:因为山雨欲来中, 样板点是取在天空(或山体)中,这一判断是测定天空(或山体)的范围。因 为在RGB颜色标准中,RGB取值越小,颜色就越深。例如RGB三色都是0 时就是黑色。步骤7的移色操作的实质是减小RGB的取值,从而使天色(或 山体的颜色)变暗,达到山雨欲来的效果】

步骤(6).如abs(sb-b2)<areaExtanDegree且abs(sg-g2)<areaExtanDegree且 abs(sr-r2)<areaExtanDegree则记b2为b,记g2为g,记r2为r,转步骤(7)进行图 像移色操作;反之,如判别条件不满足则转步骤(8)保留原色;

步骤(7).按以下公式将色彩的RGB制式变换成YCrCb制式

Y=(257*r+504*g+98*b)/1000+16;

Cr=(439*r-368*g-71*b)/1000+128;

Cb=(-148*r-291*g+439*b)/1000+128;

根据雾气浓度参数修正Y值:

Y=Y*fog;

按下列公式将YCrCb制式反变换为RGB制式:

fogB=(1.164*(Y-16)+2.017*(Cb-128));

fogG=(1.164*(Y-16)-0.813*(Cr-128)-0.392*(Cb-128));

fogR=(1.164*(Y-16)+1.596*(Cr-128));

对当前像素值予以黯黄化移色并输出

*(pixelDes)=sb-(fogB*fog/10);

*(pixelDes+1)=sg-(fogG*fog/10);

*(pixelDes+2)=sr-(fogR*fog/10);

转步骤(9);

步骤(8).将处理点的图像数据保持原数据输出:

*(pixelDes)=sb;

*(pixelDes+1)=sg;

*(pixelDes+2)=sr;

步骤(9).处理点X座标+1,如未到图像右边界则转步骤(4);否则转步骤 (10);

步骤(10).处理点X座标设为0,处理点Y座标+1,如处理点未到图像右 下边界则转步骤(4);否则程序结束。

所述的单色化和钝化方法为:

先对原图像进行单色化操作,即对图像的每一个像素进行以下的灰度化操 作:

处理后各像点的灰度值I=0.3B+0.59G+0.11R,其中B、G、R为该像素点原先 的蓝、绿、红分量值;得到单色化后的图像;

再对单色化后的图像进行钝化操作;钝化操作的如下,对于一个N*N的滤 波窗口,对该滤波窗口的每一列元素求最大值、中值和最小值;再求出所有最大 值中的最小值MaxMin、所有中间值中的中间值MedMed以及所有最小值中的最 大值MinMax,最终得到的中间值为MED=med[MaxMin,MedMed,MinMax]。

因为尚无人想到可以在手机上以本人(或朋友)的照片为素材、进行DIY 操作来创作手机动漫人物或动漫背景;特别是考虑到手机相对于台式计算机远 为薄弱(仅相当于本世纪初期的台式机)的计算能力,也往往使人却步。

为了针对手机这一特殊的平台实现DIY图像操作,在设计上采用了以下 一系列措施,特别是减少应用程序的内存需求:

A.应用程序越简单越好。我们尽可能将每个组件制作成Midlet,将所用 到的多个Midlet封装在一个Midlet包中,这使手机的程序管理器可以更节约地 管理Midlet和Midlet所使用的资源。

B.应用程序越小越好。删除应用程序中暂时用不上的组件,尽量减少不 必要的信息,以减少整个程序的体积。当在无线网上下载应用程序时,较小的 应用程序将大大缩短下载时间,并能与设备上其他应用程序兼容(而不是排他) 地运行。

C.尽量减少应用程序总内存需求。主要措施有:①少使用对象类型,换 用标量类型(scalar type)。因为标量类型比对象类型占用更少的内存;②尽量 少声明对象。因为当声明一个对象时,系统要在运行堆上分配空间,所以应该 在应用程序即将使用该对象时再分配它,而不是程序启动时全部进行分配。而 且,一旦程序不再需要该对象,就将对该对象的引用均赋值为null。③按精度 需要使用数据类型。只要有可能就应该用boolean,byte,short等数据类型代替 int。这种细节对台式机程序影响甚微,但对手机将会带产生积少成多的影响。 ④尽量重用。让多个引用在程序生存周期中的不同时间使用同一个对象。例 如重用某些大型数组、重用可利用已分配的运行时存储器,使用“惰性”实例化。 虽然这不符合软件工程原则,但却适合手机这种能力很弱的计算设备的现实情 况。⑤避免在循环内创建对象。⑥经常检查存储器使用情况。相关的方法有: freeMemory和totalMemory。自行处理OutMemoryError错误。应当保证应用 程序在内存溢出时,有一个预定的退出例程对此进行管理,而不留给操作系统。 ⑦及时释放资源。对文件、网络连接等等资源,当不再需要使用时,切莫占 着不放。应当自己执行必要的清除操作,而不要依靠垃圾收集器或宿主环境。 ⑧多使用局部变量。在台式机应用中,开发人员习惯设定较多的类数据成员, 而较少使用局部变量。但类数据成员实际上是类内的“全局变量”,是需要频繁 的数据调度、堆栈操作支持,实际上是消耗CPU计算来支持的。通过局部变 量赋值,消除访问类的数据成员的额外步骤,可以减少应用程序的CPU处理 量。这样虽然失去了将数据封装在类中所带来的好处,但是,对于在手机这种 微小型计算设备上运行、需要大量数据的应用程序来说,其处理速度是需要首 先考虑的。

有益效果:

本发明的手机动漫人物及背景创作方法,采用图像处理算法,以数码照片 为素材,改造成不同的套色或黑白朦胧画作品,在动漫服务器或手机用户个人 的手机上进行DIY操作,创造出效果特异的动漫人物或动漫背景。

本发明使用简单实用的数字图像处理算法,注意减少数据量和提高CPU 运行效率,使受制约于手机屏幕尺寸和手机计算能力的手机动漫作品能够以低 廉的创作成本和快速的运行效果,为不同年龄、不同层次、处于不同时间段的 手机用户,提供亦庄亦谐的、不同风格的电子资讯,给手机用户的生活带来更 多姿色和欢乐。特别要指出:本发明目的之一是在手机这种软硬件资源远远弱 于计算机的平台上实现DIY图像操作,所以在设计上采取上述一系列针对性措 施是完全必要的。

附图说明

图1为非对角线元素消隐方法的示意图;(图1中的步长step即gridSize),)

图2数码照片原图及采用5种方法得到的效果图(其中,(a)~(d)为原图, (e),(f)为采用非对角线元素消隐方法的效果图(也可以形象地称为“轻纱漫曼” 效果图),(g),(h)为采用随机模糊化方法的效果图(也可以形象地称为随机朦胧 效果图),(i),(j)为采用珠帘效果模拟方法处理的效果图(也可以形象地称为“珠 帘摇曳”效果图、(k),(l)为采用图像移色方法的效果图,(也可以形象地称为“山 雨欲来”效果图,(m),(n)为采用单色化和钝化方法的效果图,(也可以形象地称 为“泼墨写意”效果图)。

具体实施方式

以下将结合附图和具体实施例对本发明做进一步详细说明:

本发明提供“轻纱漫曼”、“随机朦胧”、“珠帘摇曳”、“山雨欲来”和“泼 墨写意”等五种艺术创作手法。其中“轻纱漫曼”创作手法用独创的“非对角线 元素消隐”算法实现;“随机朦胧”创作手法则在消隐的基础上叠加随机像素输 出;“珠帘摇曳”创作手法则在消隐的基础上叠加珠帘效果模拟;而“泼墨写意” 的基础是单色化和钝化。但是“山雨欲来”创作手法则并未消隐,而应用了独创 的图像移色算法,并以下述定义2表述之。

定义1.如将某图像分划为若干网格,进而,按某种规则将各网格中某些 像素隐去,则称为图像消隐。图像消隐可以达到轻纱薄雾、若隐若现的效果。 特别地,当仅保留对角线上的图像元素,则称为深度消隐或非对角线元素消隐

(参见图1);反之,如保留非对角线上的图像元素,则称为浅度消隐或对角 线元素消隐。

通过图像消隐技术(特别是深度消隐)可以实现若隐若现的视觉效果。例 如,当网格长宽均为gridSize时,如采用深度消隐则仅保留对角线上的 gridSize个像素;如采用浅度消隐则将保留非对角线上的 gridSize*(gridSize-1)个像素;

定义2.如将某像素点的颜色修正为其原有值减去它与一个非负(或非正) 系数的乘积,则称为对该像素实施图像移色。特别地,当选用非负系数时称为黯 黄化移色;当选用非正系数时则称为白皙化移色。具体地:

A.像素点原有亮度Y由下式给出:

Y=0.257*rin+0.504*gin+0.98*bin           (1)

其中rin,gin,bin为该像素点原有颜色取值。

B.移色系数M为一个实效的、与亮度Y负相关的阶跃式非负(或非正) 系数。

C.移色输出rout,gout,bout由下式给出;

rout=abs(rin-(M1*rin))         (2)

gout=abs(gin-(M2*gin))         (3)

bout=abs(bin-(M3*bin))         (4)

式中abs函数为取绝对值操作。

实施例1:

要实施本发明的手机动漫人物及背景创作方法,首先要设定项参数如下:

1.纱帘密度即网格密度(gridSize):纱帘密度应<5。

2.雾气浓度(fog):雾气浓度应在1.0~2.0之间。

3色彩样板点(colorSamples):用户通过现场所见即所得地选择2个色彩 样板点,程序就雾化了由区域扩展度确定的雾化区域,出现雾气朦胧的视觉效 果。而且,根据2个色彩样板点的颜色制作珠帘的颜色,所以珠帘的颜色灵活 多变。

4.区域扩展度(areaExtanDegree):所选择的数值越大,经由颜色朦胧样 板点扩展的移色区域越大。可选范围为1~100。

不同背景与人物的朦胧画作品,参见图2。

方法1:“非对角线元素消隐”方法,即先对预留存放输出图像的数据空 间清零为白色,然后,将非对角线上的图像元素隐去,也即,仅将对角线上的 图像元素留下。具体地,令行计数器和列计数器以gridSize【前面在设定参数 时已经设定:纱帘密度(gridSize):纱帘密度应<5。】为步长“跳跃”地遍历 全图,而当行计数器或列计数器跃进一步时,因为开始了另一格栅,辅助计数 器则由0变到gridSize,从而仅将源图像对角线上的图像拷贝到目标图像上去。 通过这种留下少数,隐去大部的算法达到轻纱薄雾、若隐若现的效果。图1为 “非对角线元素消隐”算法的图解。

步骤(1).对预留存放输出图像的数据空间清零为白色;

步骤(2).从图像的左上角开始,参数i为行计数器,参数j为列计数器, gridSize作为步长,参数k为辅助计数器,按步骤(3)~(4)遍历全图;

步骤(3).确定源(source)、目标(destination)两类像素点的位置(pixelSou  和pixelDes):

pixelSou=souBase+(i+k)*lineByte+(j+k)*pixelByte;

pixelDes=desBase+(i+k)*lineByte+(j+k)*pixelByte;

其中souBase和desBasewe为源、终两类像素点的基地址,lineByte为图 像每行字节数,pixelByte为图像每像素字节数,i和j为相应行与列,k变化范 围为0~gridSize;

对预留存放输出图像的数据空间清零为白色;所以如果没有数据输出到这 个像素点,它就是白的,因此就产生了消隐的效果。

可以这样理解,将整幅图网格化,将网格对角线处的像素保留,其他点的 像素都设为白色。

方法2:实现随机模糊。随机模糊化方法的基础也是“非对角线元素消隐” 算法。其特点是行计数器和列计数器还是以gridSize为步长“跳跃”地遍历全 图,但在影响源地址的辅助计数器中加入随机数。其中,

(1)构成源指针的行计数器和列计数器逐步跃进,辅助计数器有2个变量, 一个是k(由0变到gridSize),另一个是随机数yrand或xrand【随机数的范围 在0-gridsize之间随机】从而将指定位置的源图像拷贝到目标图像上去;

(2)构成目标指针的行计数器和列计数器逐步跃进,辅助计数器只有1个 变量k(由0变到gridSize)。

步骤(1).对预留存放输出图像的数据空间清零为白色;

步骤(2).从图像的左上角开始,参数i为行计数器,参数j为列计数器, 参数k为辅助计数器,gridSize作为步长,按步骤(3)~(4)遍历全图;

步骤(3).确定源(source)、终(destination)两类像素点(pixelSou和pixelDes) 位置:

pixelSou=souBase+(i+k+yrand)*lineByte+(j+k+xrand)*pixelByte;

pixelDes=desBase+(i+k)*lineByte+(j+k)*pixelByte;

其中souBase和desBasewe为源、终两类像素点的基地址,lineByte为图 像每行字节数,pixelByte为图像每像素字节数,i和j为相应行与列,k变化范 围为0~gridSize,yrand和xrand都是随机数;

步骤(4).取出源像素点蓝、绿、红数据赋予对应输出像素点

*(pixelDes)=*(pixelSou);

*(pixelDes+1)=*(pixelSou+1);

*(pixelDes+2)=*(pixelSou+2)。

方法3:实现珠帘效果。珠帘效果模拟方法的基础也是“非对角线元素消 隐”算法。行计数器和列计数器以gridSize为步长“跳跃”地遍历全图。其中, 行计数器和列计数器跃进一步时,辅助计数器则由0变到gridSize,从而将源 图像中的非对角线元素消隐。(参见图1)而且,因为是根据2个色彩样板点的 颜色制作珠帘的颜色,所以具有很强的灵活性。

步骤(1).对预留存放输出图像的数据空间清零为白色;

步骤(2).从图像的左上角开始,参数i为行计数器,参数j为列计数器, 参数k为辅助计数器,gridSize作为步长,按步骤(2)~(4)遍历全图;

步骤(3).确定源(source)、目标(destination)两类像素点(pixelSou和 pixelDes)位置:

pixelSou=souBase+(i+k)*lineByte+(j+k)*pixelByte;

pixelDes=desBase+(i+k)*lineByte+(j+k)*pixelByte;

其中souBase和desBasewe为源、终两类像素点的基地址,lineByte为图 像每行字节数,pixelByte为图像每像素字节数,i和j为相应行与列,k变化范 围为0~gridSize;

步骤(4).取出源像素点蓝、绿、红数据赋予对应输出像素点

*(pixelDes)=abs(*(pixelSou));

*(pixelDes+1)=abs(*(pixelSou+1));

*(pixelDes+2)=abs(*(pixelSou+2));

步骤(5).根据2个色彩样板点的位置,从图像中分别查找出它们的像素数 据color1,color2;

步骤(6).以color1或color2两种颜色以适当的行距、列距【例如在图2i 和2j中的行距两色交替地各为20,列距为40。】调用MakeColorPearl模板形 成彩色的珍珠。该模板的参数为:列号j,行号i,图像每行字节数lineByte,图 像每像素字节数pixelByte,珍珠直径r,珍珠颜色color(分别用color1或 color2);【MakeColorPearl模板,即形成彩色珠帘模板,为现有成熟技术,】

方法4:图像移色方法,包括以下步骤:

步骤(1).根据2个色彩样板点的位置,从图像中分别查找出它们的像素数 据(蓝、绿、红数值),分别记作b1,g1,r1,和b2,g2,r2,用在步骤(5)和步骤 (6)中。

步骤(2).处理点X,Y初始座标设为图像左上角,即X,Y均设为0;

步骤(3).通过以下步骤(4)~(9)逐列、逐行地推进:

步骤(4).取得某一处理点的蓝、绿、红数值,分别记作sb,sg,sr;

步骤(5).如abs(sb-b 1)<areaExtanDegree且abs(sg-g1)<areaExtanDegree且 abs(sr-r1)<areaExtanDegree则记b1为b,记g1为g,记r1为r,转步骤(7)进行图 像移色操作。反之,如判别条件不满足则转步骤(8)保留原色;

步骤(6).如abs(sb-b2)<areaExtanDegree且abs(sg-g2)<areaExtanDegree且 abs(sr-r2)<areaExtanDegree则记b2为b,记g2为g,记r2为r,转步骤(7)进行图 像移色操作。反之,如判别条件不满足则转步骤(8)保留原色;

步骤(7).按公式(1),(2),(3)将色彩的RGB制式变换成YCrCb制式

Y=(257*r+504*g+98*b)/1000+16    (5)

Cr=(439*r-368*g-71*b)/1000+128  (6)

Cb=(-148*r-291*g+439*b)/1000+128(7)

根据雾气浓度参数修正Y值:

Y=Y*fog                         (8)

按公式(5),(6),(7)将YCrCb制式反变换为RGB制式

fogB=(1.164*(Y-16)+2.017*(Cb-128))                 (9)

fogG=(1.164*(Y-16)-0.813*(Cr-128)-0.392*(Cb-128))  (10)

fogR=(1.164*(Y-16)+1.596*(Cr-128))                 (11)

对当前像素值予以黯黄化移色并输出

*(pixelDes)=sb-(fogB*fog/10);

*(pixelDes+1)=sg-(fogG*fog/10);

*(pixelDes+2)=sr-(fogR*fog/10);

转步骤(9);

步骤(8).将处理点的图像数据“原封不动”地输出:

*(pixelDes)=sb;

*(pixelDes+1)=sg;

*(pixelDes+2)=s r;

步骤(9).处理点X座标+1,如未到图像右边界则转步骤(4);否则转步骤 (10);

步骤(10).处理点X座标设为0,处理点Y座标+1,如处理点未到图像右 下边界则转步骤(4);否则程序结束;

算法5.单色化和钝化方法:相继调用灰度化操作和图像钝化操作。 灰度化操作,处理后各像点的灰度值I=0.3B+0.59G+0.11R,其中B、G、R为 该像素点原先的蓝、绿、红分量值。

钝化方法说明如下:

标准一维中值滤波的定义为:

yk=med{xk-n,xk-n+1,...,xk,...,xk+n-1,xk+n}

式中,med表示取中值操作。由此可见,中值滤波是将滑动窗口的各像素 的灰度(即上式中的xk-n,xk-n+1,...,xk,...,xk+n-1,xk+n)从上而下排序,选中间取值 作为该像素的代表。当滑动窗口较大而使滑动窗口内像素很多(设为m)时,要 进行排序操作很消耗计算能力(需要做m(m-2)/2次比较操作。为此采用了快速 排序算法实现钝化操作,减小计算量约0.47倍。简述其思路如下:为便于描述, 称3×3窗口内各行像素为:第0行p.0,p1,p2,第1行p.3,p.4,p5,第2行 p6,p.7,p.8。首先对窗口内每一列像素计算得到最大值组、中值组、最小值组:

最大值组:Max0=max[p0,p.3,p6],Max1=max[p1,p4,p7], Max2=max[p2,p5,p8];相仿地有中值组Med0,Med1,Med2,和最小值组Min0, Min1,Min2。进一步求出:MaxMin=min[Max0,Max1,Max2],相仿地求出 MedMed,MinMax;进一步求出:MED=med[MaxMin,MedMed,MinMax]即 为真正的中值。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号