CN102074035A - 一种基于全景图像扭曲的手机动漫人物创作方法 - Google Patents
一种基于全景图像扭曲的手机动漫人物创作方法 Download PDFInfo
- Publication number
- CN102074035A CN102074035A CN2010106122362A CN201010612236A CN102074035A CN 102074035 A CN102074035 A CN 102074035A CN 2010106122362 A CN2010106122362 A CN 2010106122362A CN 201010612236 A CN201010612236 A CN 201010612236A CN 102074035 A CN102074035 A CN 102074035A
- Authority
- CN
- China
- Prior art keywords
- distortion
- image
- template
- scale
- mobile phone
- 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.)
- Granted
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
本发明公开了一种基于全景图像扭曲的手机动漫人物创作方法,包括以下步骤:1)设计图像扭曲模板;2)设定扭曲参数以调整扭曲程度;3)对图像进行扭曲操作,形成扭曲的人物脸谱;4)可选的灰度化或二值化操作。本发明使用简单实用的数字图像处理算法,非常注意减少数据量和提高CPU运行效率,使计算能力相对薄弱的手机能够在其上DIY出搞笑趣味十足的手机动漫作品,并具有低廉的创作成本和快速的运行效果。
Description
技术领域
本发明属于数字图像处理技术领域,涉及一种基于全景图像扭曲的手机动漫人物创作方法。
背景技术
我国手机动漫产品目前主要包括动漫彩信、四格手机漫画、动画短片和回合制手机游戏等。它们兼有文化产品和信息产品的双重特性:作为文化产品无疑需要遵循社会主义文化产品的普遍原则,但又不宜直白说教,而要寓教于乐;而作为信息产品则希望尽可能地引入先进的计算机技术,以期在提高产品质量的同时提高其生产效率。
这类产品还具有不同于影视动漫音像作品的三大显著特点:首先,它是一种“碎片式”的娱乐产品,它不需要大段连片的时间,这恰好满足了现代都市人由于生活节奏快、工作压力大,希望丰富文化生活但没有连续的闲暇时间的现实需求。其次,这类产品的受众主要包括学生、时尚青年、白领等三十五岁以下人群,他们追求新鲜、刺激,乐于亲自动手,通过易学易用的工具改变自身形象,更乐于善意地搞怪他人,含盖本专利的动漫服务器,将能使他们获得亲自创作的愉悦。第三,手机视频等产品对手机的处理器、内存、色彩分辨、屏幕大小、电池电量等硬件环境存在较高要求,而目前市场上能流畅支持视频的手机并不多,而且价格偏高。固然,随着3G的推广和手机的技术升级,终端的问题必将会解决,但是如果现在就有短小精悍、生动活泼的动漫彩信面世,在降低了对手机终端的性能要求的同时,将会争得更多手机用户的垂青。
手机动画或手机彩信不同于常规意义下的“正派”影视作品;这类手机作品是以切入日常生活的方式流转、播映的,非常需要借助轻喜剧元素来“开窗透气”,借真真假假的人物造型来调剂气氛,这才符合“碎片式娱乐”的心情。例如,2010年初,周杰因为与小虎队粉丝进行网络口水战遭遇网友恶搞,日前,在微博上又出现了一组以《还珠格格》中周杰饰演的“尔康”剧照为素材的搞笑照片(参见图4),网友将这组图片发到论坛上后,立即引发了更热烈的响应,不少著名的动漫角色都纷纷“乱入”,不少跟帖称这些图片“太欢乐,太给力了”。
就手机动漫创作而言,草根作者、出版机构、国内外动漫企业都是动漫作品的来源,只有首先实现作品量的突破,作品的内容、形式更加广泛多样,就能够获得更广泛的受众,就必然会在量变的基础引发质的突破。而且我们认为,优秀的作品也不一定必须诞生于“国家队”中,从只要有简单、易用的创作工具,草根作者就能够将自己的巧妙构思付诸实现,创作出相当不错的作品,在无线网络中迅速传播,只有各个层次的作品给手机用户带来更自由、阳光、快乐的享受,全社会才会出现繁花似锦的动漫繁荣景象。
基于上述考虑我们提出本发明,即以基于全景图像扭曲技术为基础,以本人(或熟人)的照片为素材,用计算机自动、低廉、高效地制作,也可以由手机用户在自己的手机上进行DIY操作,创造出一批短小精悍、生动活泼的数字动漫新作,穿梭于无线的时空之中。而且我们尚未发现有与本发明相似的、在手机上运行的、基于全景图像扭曲技术的手机动漫人物创作的报道。
发明内容
本发明所要解决的技术问题是提出一种基于全景图像扭曲的手机动漫人物创作方法,该基于全景图像扭曲的手机动漫人物创作方法数据处理量小,易于实施,适于在手机上运行。
本发明的技术解决方案如下:
一种基于全景图像扭曲的手机动漫人物制作方法创作方法,包括以下步骤:
步骤一:基于原图像设计图像扭曲模板;
步骤二:设定扭曲参数以调整扭曲程度;
步骤三:对图像进行扭曲操作,形成扭曲的人物脸谱图像。
对步骤三所得的人物脸谱图像进行灰度化或二值化操作,形成灰度图像或黑白图像。
所述的步骤一的具体步骤为:为宽度为width、高度为height的原图像建立一个具有lines行和columns列、边长为scale的无扭曲的方形格状模板-SquareTemplet,在该无扭曲的方形格状模板中记录每一方格左上端点的X、Y坐标;为便于在低运算能力的手机中快速运行,采用包含行指针和列指针的链表结构,将一个二维数组转化为一维表示;
SquareTemplet[i*columns+j].x=j*scale;
SquareTemplet[i*columns+j].y=i*scale;
其中:i为模板的行号;
j为模板的列号;
scale为方格的边长。
在本步骤中scale取值一股为4,即4个像素,以避免扭曲后的图像在边缘出现较大锯齿,从而将待扭曲图像划分成以4×4的方格。
步骤二中的扭曲参数为:Xamplify、Yamplify分别表示正弦函数在X、Y方向的扭曲系数;
Xshift、Yshift分别表示正弦函数在X、Y方向的扭曲偏移度,Xshift和Yshift的取值在0~90度之间;
扭曲参数由用户根据需要在创作时现场设定或采用系统预先设定的参数;
扭曲参数设定后,为所述的原图像建立一个具有lines行和columns列的其边长为scale+dx,scale+dy的有扭曲的方形格状模板-TwistTemplet,在该有扭曲的方形格状模板中记录每一方格左上端点的X、Y坐标;为便于在低运算能力的手机中快速运行,采用包含行指针和列指针的链表结构,将一个二维数组转化为一维表示,即
TwistTemplet[i*columns+j].x=j*scale+dx;
TwistTemplet[i*columns+j].y=i*scale+dy;
其中,
dx=Xamplify*sin((i+Xshift)*Xalpha);dy=Yamplify*sin((j+Yshift)*Yalpha);
Xalpha,Yalpha分别表示单位方格在X、Y方向对应的弧度数,即:Xalpha=2*3.1416/columns,Yalpha=2*3.1416/lines。
5.根据权利要求4所述的基于全景图像扭曲的手机动漫人物制作方法创作方法,其特征在于,所述的步骤三中的扭曲操作是面向边长为scale的方块逐块实现的:
操作过程:以变量i自上而下逐行、以变量j自左至右逐列,遍历地调用扭曲函数对每一被渲染块实施扭曲操作,从而实现对全图的扭曲操作,扭曲函数的功能是将各投影块中的原图图像内插地影射到被渲染块上去;
其中被渲染块指本次操作所指向的目标图像块,即SquareTemplet模板中的某一块;
投影块指将本投影块中的原图的图像内插地影射被渲染块上去,投影块也即TwistTemplet模板中的某一块;
扭曲函数包含的过程展开如下:
步骤1、根据本被渲染块所在的行号确定当前本被渲染块左上角X坐标:xij=j×scale;
步骤2、根据本被渲染块所在地行号确定当前本被渲染块左上角Y坐标:yij=i×scale;
步骤3、取出扭曲模板中对应本投影块的左上角X坐标:Lxij=TwistTemplet[i×columns+j].x;
步骤4、取出扭曲模板中对应本投影块的左上角Y坐标:Lyij=TwistTemplet[i×columns+j].y;
步骤5、取出扭曲模板中对应本投影块的右下角X坐标:Rxij=TwistTemplet[(i+1)×columns+(j+1)].x;原来您的意见是对的,我核查了程序,经过修改后和原来的结果差不多,肉眼看不出差别,但逻辑上更合理些。
步骤6、取出扭曲模板中对应本投影块的右下角Y坐标:Ryij=TwistTemplet[(i+1)×columns+(j+1)].y;
步骤7、求出投影块中每一点的X平均偏移:dxij=(Rxij-Lxij)/scale;
步骤8、求出投影块中每一点的Y平均偏移:dyij=(Ryij-Lyij)/scale;
步骤9、渐增地对投影块中每一行bky[每一行像素]求出其Y坐标iy:iy=Lyij+(bkL×dyij);
步骤10、渐增地对投影块中每一列bkx[每一列像素]求出其X坐标ix:ix=Lxij+(bkC×dxij);
步骤11、将以iy行ix列标志的RGB图像渐次投影到bky行bkx列上去,即渐次完成如下从原图像向扭曲后图像的赋值操作:扭曲后图像的输出指针为:
ImgOpt+bky×lineByte+bkx×pixelByte+shift ---公式3;
原图像(正常图像)的输入指针为:
ImgIpt+iy×LineByte+ix×pixelByte+shift --公式4;
其中,ImgOpt为扭曲后图像的基指针;
ImgIpt为扭曲前图像即原图像的基指针;
解释:ImgOpt和ImgIpt分别是结果图像和源图像的基指针,后面加的是它们的偏移。
lineByte为每一图像行的字节数;
pixelByte为每一图像列的字节数;
shift为将RGB图像渐次进行投影操作的偏移量,分别为0,1,2,依次取0,1,2表示将红绿蓝图像依次由源图像投射到目标图像去;
公式3是描述目标位置,公式4是描述源位置,公式3和公式4用于将源位置的像素值复制到目标位置去。
其中,columns为方形格状模板的列数,与之相仿lines为方形格状模板的行数。显然,
columns=(width/scale)+1,其中width为待扭曲图像的宽度
lines=(height/scale)+1,其中height为待扭曲图像的高度
步骤二为设定扭曲参数,它们均可由用户根据需要在创作时现场设定。
其中放大系数Xamplify,Yamplify分别表示正弦函数在X、Y方向的扭曲系数。
分析公式(1)和公式(2)可见,当Xamplify,Yamplify均为0时,dx,dy为0,TwistTemplet还原为无扭曲的SquareTemplet。
Xamplify,Yamplify的取值范围为0~1.5。其中,取值在0.5以下为轻度扭曲,取值在0.9左右为中等扭曲,取值在1.3以上为严重扭曲。
Xshift,Yshift分别表示正弦函数在X、Y方向的扭曲偏移度,其取值在0~90度之间。
不难想象,因为这四组参数都可以连续取值,而且X方向和Y方向取值可以不同,所以对它们加以组合(参见1g,1h的参数组合),可以从同一幅原始图像演变出许许多多、具有意想不到扭曲效果的搞笑图像,这也是本发明的特点之一。
步骤四为附加的可选的灰度化或二值化操作。
其中,对上述扭曲后图像进行灰度化操作,处理后的像点的灰度值I=0.3B+0.59G+0.11R,其中R、G、B为原图像像点的像素的三个分量,从而获得类似图2(a)的灰度图像。
对上述扭曲后图像进行二值化操作,处理后的像点的取值I为:
其中R、G、B为原图像像点的像素的三个分量,从而获得类似图2(b)的黑白图像。
本发明的技术构思:
因为尚无人想到可以在手机上以本人(或熟人)的照片为素材、进行DIY操作来创作手机动漫人物;特别是考虑到手机相对于台式计算机远为薄弱(仅相当于本世纪初期的台式机)的计算能力,也往往使人却步。
为了针对手机这一特殊的平台实现DIY图像操作,在设计上采用了以下一系列措施,特别是减少应用程序的内存需求:
A.应用程序越简单越好。我们尽可能将每个组件制作成Midlet,将所用到的多个Midlet封装在一个Midlet包中,这使手机的程序管理器可以更节约地管理Midlet和Midlet所使用的资源。
B.应用程序越小越好。删除应用程序中暂时用不上的组件,尽量减少不必要的信息,以减少整个程序的体积。当在无线网上下载应用程序时,较小的应用程序将大大缩短下载时间,并能与设备上其他应用程序兼容(而不是排他)地运行。
C.尽量减少应用程序总内存需求。主要措施有:①少使用对象类型,换用标量类型(scalar type)。因为标量类型比对象类型占用更少的内存;②尽量少声明对象。因为当声明一个对象时,系统要在运行堆上分配空间,所以应该在应用程序即将使用该对象时再分配它,而不是程序启动时全部进行分配。而且,一旦程序不再需要该对象,就将对该对象的引用均赋值为null。③按精度需要使用数据类型。只要有可能就应该用boolean,byte,short等数据类型代替int。这种细节对台式机程序影响甚微,但对手机将会带产生积少成多的影响。④尽量重用。让多个引用在程序生存周期中的不同时间使用同一个对象。例如重用某些大型数组、重用可利用已分配的运行时存储器,使用“惰性”实例化。虽然这不符合软件工程原则,但却适合手机这种能力很弱的计算设备的现实情况。⑤避免在循环内创建对象。⑥经常检查存储器使用情况。相关的方法有:freeMemory和totalMemory。自行处理OutMemoryError错误。应当保证应用程序在内存溢出时,有一个预定的退出例程对此进行管理,而不留给操作系统。⑦及时释放资源。对文件、网络连接等等资源,当不再需要使用时,切莫占着不放。应当自己执行必要的清除操作,而不要依靠垃圾收集器或宿主环境。⑧多使用局部变量。在台式机应用中,开发人员习惯设定较多的类数据成员,而较少使用局部变量。但类数据成员实际上是类内的“全局变量”,是需要频繁的数据调度、堆栈操作支持,实际上是消耗CPU计算来支持的。通过局部变量赋值,消除访问类的数据成员的额外步骤,可以减少应用程序的CPU处理量。这样虽然失去了将数据封装在类中所带来的好处,但是,对于在手机这种微小型计算设备上运行、需要大量数据的应用程序来说,其处理速度是需要首先考虑的。
有益效果:
本发明使用简单实用的数字图像处理算法,注意减少数据量和提高CPU运行效率,使受制约于手机屏幕尺寸和手机计算能力的手机动漫作品能够以低廉的创作成本和快速的运行效果,采用本发明方法制作的动漫图像搞笑趣味十足,为不同年龄、不同层次、处于不同时间段的手机用户,提供亦庄亦谐的、不同风格的电子资讯,给手机用户的生活带来更多姿色和欢乐。
特别要指出:本发明目的之一要是在手机这种软硬件资源远远弱于计算机的平台上实现DIY图像操作,所以在设计上采取上述一系列针对性措施是完全必要的,而且这些措施正是本发明的关键点所在。
附图说明
图1为按下表选取不同扭曲参数后演变生成不同效果的彩色扭曲图像
图2为对彩色扭曲图像施加灰度化或二值化的效果图;
图3本发明方法的流程图;
图4采用本发明方法制作的专用于网络博客的动漫图片(搞笑图像)。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明:
实施例1:
一、基于全景图像扭曲的手机动漫人物创作方法的步骤一为设计图像扭曲模板,包含步骤1和步骤2:
步骤1、为宽度为width、高度为height的图像,建立一个具有lines行和columns列、边长为scale的无扭曲的方形格状模板-SquareTemplet,在该模板中记录每一方格左上端点的X、Y坐标。
为在手机这类低运算能力的设备中迅速运行,我们引入包含行指针和列指针的链表结构,将一个二维数组转化为一维表示:
SquareTemplet[i*columns+j].x=j*scale;本公式用以指明在方形格状模板中的存储数据的规律,其中SquareTemplet[i*columns+j].x表示在存储在该模板中第i行j列数据的X分量。
SquareTemplet[i*columns+j].y=i*scale;同样,本式表示在存储在该模板中第i行j列数据的Y分量。
其中:i为所描述的模板的第i行号;
j为所描述的模板的第j列号;
scale为方格的边长;【scale是用像素的个数表示的】
columns为方形格状模板的列数,与之相仿lines为方形格状模板的行数。显然,
columns=(width/scale)+1,其中width为待扭曲图像的宽度
lines=(height/scale)+1,其中height为待扭曲图像的高度
步骤2、为宽度为width、高度为height的图像,建立一个具有lines行和columns列的,其边长为scale+dx,scale+dy的有扭曲的方形格状模板-TwistTemplet,在该模板中记录每一方格左上端点的X、Y坐标。
为在手机这类低运算能力的设备中迅速运行,我们引入包含行指针和列指针的链表结构,同样地将一个二维数组转化为一维表示:
TwistTemplet[i*columns+j].x=j*scale+dx;
TwistTemplet[i*columns+j].y=i*scale+dy;
其中,dx=Xamplify*sin((i+Xshift)*Xalpha) (1)
dy=Yamplify*sin((j+Yshift)*Yalpha) (2)
Xamplify,Yamplify分别表示正弦函数在X、Y方向的扭曲系数
Xshift,Yshift分别表示正弦函数在X、Y方向的偏移
Xalpha,Yalpha分别表示单位方格在X、Y方向应的弧度数,即:Xalpha=2*3.1416/columns,Yalpha=2*3.1416/lines
i,j,scale,columns的含义同步骤1,
二.步骤二为设定扭曲参数,它们均可由用户根据需要在创作时现场设定。
其中放大系数Xamplify,Yamplify分别表示正弦函数在X、Y方向的扭曲系数。
分析公式(1)和公式(2)可见,当Xamplify,Yamplify均为0时,dx,dy为0,TwistTemplet还原为无扭曲的SquareTemplet。
Xamplify,Yamplify的取值范围为0~1.5。其中,取值在0.5以下为轻度扭曲,取值在0.9左右为中等扭曲,取值在1.3以上为严重扭曲。
Xshift,Yshift分别表示正弦函数在X、Y方向的扭曲偏移度,其取值在0~90度之间。
不难想象,因为这四组参数都可以连续取值,而且X方向和Y方向取值可以不同,所以对它们加以组合(参见1g,1h的参数组合),可以从同一幅原始图像演变出许许多多、具有意想不到扭曲效果的搞笑图像,这也是本发明的特点之一。
限于篇幅,我们无法罗列出更多具有不同效果的图像,仅以表1给出3类组合,并显示其效果。下表(表1)列出在Xamplify,Yamplify和Xshift,Yshift取不同值时,所形成的TwistTemplet模板及其相应的扭曲图像:
在1c,1d这组图中明显地可见:在X方向0偏移时在耳朵上部在X方向方格明显变窄,因此在步骤3得到最大伸展;而在1e,1f这组图却与之相反,在X方向45度偏移时在耳朵上部在X方向方格明显变宽,因此在步骤3得到最大压缩,从而造成截然相反的扭曲效果。
三、步骤三对图像进行扭曲操作,形成扭曲的人物脸谱:
如步骤一所述,我们为宽度为width、高度为height的图像,建立一个具有lines行和columns列、边长为scale的方块,故本操作是面向边长为scale的方块逐块实现的,即通过bkTwist函数遍历lines行和columns列实现全图操作。
操作过程:以变量i自上而下逐行、以变量j自左至右而下逐列,遍历地调用一个自编的“bkTwist”(意为Block Twist)函数对每一被渲染块实施扭曲操作,从而实现对全图的扭曲操作。其中bkTwist函数的功能是将各投影块中的原图图像内插地影射到被被渲染块上去。下面将bkTwist函数的操作过程展开如下:
步骤1、根据本被渲染块所在地行号确定当前被渲染块左上角X坐标:xij=j×scale
步骤2、根据本被渲染块所在地行号确定当前被渲染块左上角Y坐标:yij=i×scale
步骤3、取出扭曲模板中对应本块的左上角X坐标:Lxij=TwistTemplet[i×columns+j].x
步骤4、取出扭曲模板中对应本块的左上角Y坐标:Lyij=TwistTemplet[i×columns+j].y
步骤5、取出扭曲模板中对应本块的右下角X坐标:Rxij=TwistTemplet[i×columns+(j+1)].x
步骤6、取出扭曲模板中对应本块的右下角Y坐标:Ryij=TwistTemplet[(i+1)×columns+(j+1)].y
步骤7、求出投影块中每一点的X平均偏移:dxij=(Rxij-Lxij)/scale
步骤8、求出投影块中每一点的Y平均偏移:dyij=(Ryij-Lyij)/scale
步骤9、渐增地对投影块中每一行bky[每一行像素]求出其Y坐标iy:iy=Lyij+(bkL×dyij)
步骤10、渐增地对投影块中每一列bkx[每一列像素]求出其X坐标ix:ix=Lxij+(bkC×dxij)
步骤11、将以iy行ix列标志的RGB图像渐次投影到bky行bkx列上去,即渐次完成如下图像赋值操作:其中图像输出指针为:
ImgOpt+bky×lineByte+bkx×pixelByte+shift (3)
图像输入指针为:
ImgIpt+iy×LineByte+ix×pixelByte+shift (4)
公式3是描述目标位置,公式4是描述源位置,用来将源位置的图像拷贝到目标位置去。
且,其中,ImgOpt为扭曲后图像的输出指针;
ImgIpt为扭曲前图像的输入指针;ImgOpt和ImgIpt分别是结果图像和源图像的基指针,后面加的是他们的偏移。(就好像男士一队,女士一队,后面加的是指明男士第几人,女士第几人。)
lineByte为每一图像行的字节数;
pixelByte为每一图像列的字节数;
shift为RGB图像渐次投影操作的偏移量,分别为0,1,2。依次取0,1,2表示将红绿蓝图像依次由源图像投射到目标图像去。
四、步骤四为可选的灰度化或二值化操作。
其中,对上述扭曲后图像进行灰度化操作,处理后的像点的灰度值I=0.3B+0.59G+0.11R,其中R、G、B为原图像像点的像素的三个分量,从而获得类似图2(a)的灰度图像。
对上述扭曲后图像进行二值化操作,处理后的像点的取值I为:
其中R、G、B为原图像像点的像素的三个分量,从而获得类似图2(b)的黑白图像。
Claims (6)
1.一种基于全景图像扭曲的手机动漫人物创作方法,其特征在于,包括以下步骤:
步骤一:基于原图像设计图像扭曲模板;
步骤二:设定扭曲参数以调整扭曲程度;
步骤三:对图像进行扭曲操作,形成扭曲的人物脸谱图像。
2.根据权利要求1所述的基于全景图像扭曲的手机动漫人物创作方法,其特征在于,对步骤三所得的人物脸谱图像进行灰度化或二值化操作,形成灰度图像或黑白图像。
3.根据权利要求1或2所述的基于全景图像扭曲的手机动漫人物创作方法,其特征在于:
所述的步骤一的具体步骤为:为宽度为width、高度为height的原图像建立一个具有lines行和columns列、边长为scale的无扭曲的方形格状模板-SquareTemplet,在该无扭曲的方形格状模板中记录每一方格左上端点的X、Y坐标;为便于在低运算能力的手机中快速运行,采用包含行指针和列指针的链表结构,将一个二维数组转化为一维表示;
SquareTemplet[i*columns+j].x=j*scale;
SquareTemplet[i*columns+j].y=i*scale;
其中:i为模板的行号;
j为模板的列号;
scale为方格的边长。
4.根据权利要求3所述的基于全景图像扭曲的手机动漫人物创作方法,其特征在于:
步骤二中的扭曲参数为:Xamplify、Yamplify分别表示正弦函数在X、Y方向的扭曲系数;
Xshift、Yshift分别表示正弦函数在X、Y方向的扭曲偏移度,Xshift和Yshift的取值在0~90度之间;
扭曲参数由用户根据需要在创作时现场设定或采用系统预先设定的参数;
扭曲参数设定后,为所述的原图像建立一个具有lines行和columns列的其边长为scale+dx,scale+dy的有扭曲的方形格状模板-TwistTemplet,在该有扭曲的方形格状模板中记录每一方格左上端点的X、Y坐标;为便于在低运算能力的手机中快速运行,采用包含行指针和列指针的链表结构,将一个二维数组转化为一维表示,即
TwistTemplet[i*columns+j].x=j*scale+dx;
TwistTemplet[i*columns+j].y=i*scale+dy;
其中,
dx=Xamplify*sin((i+Xshift)*Xalpha);dy=Yamplify*sin((j+Yshift)*Yalpha);
Xalpha,Yalpha分别表示单位方格在X、Y方向对应的弧度数,即:Xalpha=2*3.1416/columns,Yalpha=2*3.1416/lines。
5.根据权利要求4所述的基于全景图像扭曲的手机动漫人物创作方法,其特征在于,所述的步骤三中的扭曲操作是面向边长为scale的方块逐块实现的:
操作过程:以变量i自上而下逐行、以变量j自左至右逐列,遍历地调用扭曲函数对每一被渲染块实施扭曲操作,从而实现对全图的扭曲操作,扭曲函数的功能是将各投影块中的原图图像内插地影射到被渲染块上去;
其中被渲染块指本次操作所指向的目标图像块,即SquareTemplet模板中的某一块;
投影指将本投影块中的原图的图像内插地影射被渲染块上去,投影块也即TwistTemplet模板中的某一块。
6.根据权利要求5所述的基于全景图像扭曲的手机动漫人物创作方法,其特征在于,扭曲函数包含的过程展开如下:
步骤1、根据本被渲染块所在的行号确定本被渲染块左上角X坐标:xij=j×scale;
步骤2、根据本被渲染块所在地行号确定本被渲染块左上角Y坐标:yij=i×scale;
步骤3、取出扭曲模板中对应本投影块的左上角X坐标:Lxij=TwistTemplet[i×columns+j].x;
步骤4、取出扭曲模板中对应本投影块的左上角Y坐标:Lyij=TwistTemplet[i×columns+j].y;
步骤5、取出扭曲模板中对应本投影块的右下角X坐标:Rxij=TwistTemplet[(i+1)×columns+(j+1)].x;
步骤6、取出扭曲模板中对应本投影块的右下角Y坐标:Ryij=TwistTemplet[(i+1)×columns+(j+1)].y;
步骤7、求出投影块中每一点的X平均偏移:dxij=(Rxij-Lxij)/scale;
步骤8、求出投影块中每一点的Y平均偏移:dyij=(Ryij-Lyij)/scale;
步骤9、渐增地对投影块中每一行bky求出其Y坐标iy:iy=Lyij+(bkL×dyij);
步骤10、渐增地对投影块中每一列bkx求出其X坐标ix:ix=Lxij+(bkC×dxij);
步骤11、将以iy行ix列标志的RGB图像渐次投影到bky行bkx列上去,即渐次完成从原图像向扭曲后图像的赋值操作:扭曲后图像的输出指针为:
ImgOpt+bky×lineByte+bkx×pixelByte+shift ---公式3;
原图像的输入指针为:
ImgIpt+iy×LineByte+ix×pixelByte+shift ---公式4;
其中,ImgOpt为扭曲后图像的基指针;
ImgIpt为扭曲前图像即原图像的的基指针;
lineByte为每一图像行的字节数;
pixelByte为每一图像列的字节数;
shift为将RGB图像渐次进行投影操作的偏移量,分别为0,1,2,依次取0,1,2表示将红绿蓝图像依次由源图像投射到目标图像去;
公式3是描述目标位置,公式4是描述源位置,公式3和公式4用于将源位置的像素值复制到目标位置去。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010612236.2A CN102074035B (zh) | 2010-12-29 | 2010-12-29 | 一种基于全景图像扭曲的手机动漫人物创作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010612236.2A CN102074035B (zh) | 2010-12-29 | 2010-12-29 | 一种基于全景图像扭曲的手机动漫人物创作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102074035A true CN102074035A (zh) | 2011-05-25 |
CN102074035B CN102074035B (zh) | 2014-07-02 |
Family
ID=44032564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010612236.2A Active CN102074035B (zh) | 2010-12-29 | 2010-12-29 | 一种基于全景图像扭曲的手机动漫人物创作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102074035B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243767A (zh) * | 2011-06-22 | 2011-11-16 | 拓维信息系统股份有限公司 | 一种基于局部图像扭曲的手机动漫人物创作方法 |
CN111444873A (zh) * | 2020-04-02 | 2020-07-24 | 北京迈格威科技有限公司 | 视频中人物真伪的检测方法、装置、电子设备及存储介质 |
WO2021031847A1 (zh) * | 2019-08-16 | 2021-02-25 | 北京字节跳动网络技术有限公司 | 图像处理方法、装置、电子设备和计算机可读存储介质 |
CN116975335A (zh) * | 2023-09-25 | 2023-10-31 | 瀚博半导体(上海)有限公司 | 图像扭曲运算的顺序仿存方法、装置、介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006111602A1 (en) * | 2005-04-19 | 2006-10-26 | Nokia Corporation | A method for creating distorted portraits using camera with a wire frame overlay |
CN101034481A (zh) * | 2007-04-06 | 2007-09-12 | 湖北莲花山计算机视觉和信息科学研究院 | 一种肖像画的自动生成方法 |
CN101281653A (zh) * | 2008-04-30 | 2008-10-08 | 湖南拓维信息系统股份有限公司 | 将观众的个人脸谱融入动画角色的方法 |
CN101667300A (zh) * | 2009-10-16 | 2010-03-10 | 拓维信息系统股份有限公司 | 基于手机平台的人物变形设计方法 |
CN101826217A (zh) * | 2010-05-07 | 2010-09-08 | 上海交通大学 | 人脸动画快速生成方法 |
-
2010
- 2010-12-29 CN CN201010612236.2A patent/CN102074035B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006111602A1 (en) * | 2005-04-19 | 2006-10-26 | Nokia Corporation | A method for creating distorted portraits using camera with a wire frame overlay |
CN101034481A (zh) * | 2007-04-06 | 2007-09-12 | 湖北莲花山计算机视觉和信息科学研究院 | 一种肖像画的自动生成方法 |
CN101281653A (zh) * | 2008-04-30 | 2008-10-08 | 湖南拓维信息系统股份有限公司 | 将观众的个人脸谱融入动画角色的方法 |
CN101667300A (zh) * | 2009-10-16 | 2010-03-10 | 拓维信息系统股份有限公司 | 基于手机平台的人物变形设计方法 |
CN101826217A (zh) * | 2010-05-07 | 2010-09-08 | 上海交通大学 | 人脸动画快速生成方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243767A (zh) * | 2011-06-22 | 2011-11-16 | 拓维信息系统股份有限公司 | 一种基于局部图像扭曲的手机动漫人物创作方法 |
CN102243767B (zh) * | 2011-06-22 | 2013-04-03 | 拓维信息系统股份有限公司 | 一种基于局部图像扭曲的手机动漫人物创作方法 |
WO2021031847A1 (zh) * | 2019-08-16 | 2021-02-25 | 北京字节跳动网络技术有限公司 | 图像处理方法、装置、电子设备和计算机可读存储介质 |
US11516411B2 (en) | 2019-08-16 | 2022-11-29 | Beijing Bytedance Network Technology Co., Ltd. | Image processing method and apparatus, electronic device and computer-readable storage medium |
CN111444873A (zh) * | 2020-04-02 | 2020-07-24 | 北京迈格威科技有限公司 | 视频中人物真伪的检测方法、装置、电子设备及存储介质 |
CN111444873B (zh) * | 2020-04-02 | 2023-12-12 | 北京迈格威科技有限公司 | 视频中人物真伪的检测方法、装置、电子设备及存储介质 |
CN116975335A (zh) * | 2023-09-25 | 2023-10-31 | 瀚博半导体(上海)有限公司 | 图像扭曲运算的顺序仿存方法、装置、介质及电子设备 |
CN116975335B (zh) * | 2023-09-25 | 2023-12-26 | 瀚博半导体(上海)有限公司 | 图像扭曲运算的顺序仿存方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102074035B (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210082194A1 (en) | System and method to integrate content in real time into a dynamic real-time 3-dimensional scene | |
US20220080318A1 (en) | Method and system of automatic animation generation | |
CN101178817B (zh) | 一种在三维场景内实现三维信息演示文档的方法 | |
CN102074035B (zh) | 一种基于全景图像扭曲的手机动漫人物创作方法 | |
Madhav | Game programming algorithms and techniques: a platform-agnostic approach | |
CN107197341A (zh) | 一种基于gpu的炫屏显示方法、装置及一种存储设备 | |
CN109144384A (zh) | 显示方法、装置、硬件装置和计算机可读存储介质 | |
CN109102560A (zh) | 三维模型渲染方法及装置 | |
CN110930492A (zh) | 模型渲染的方法、装置、计算机可读介质及电子设备 | |
CN102306389B (zh) | 一种手机动漫人物及背景的浮雕效果实现方法 | |
CN102147923A (zh) | 一种动画图像的遮挡显示方法 | |
CN1564202A (zh) | 图像过场动画特效的生成及播放方法 | |
WO2009011657A1 (en) | Methods of providing graphics data and displaying graphics data | |
CN107277633B (zh) | 一种展示直播间礼物效果的方法及装置 | |
CN102243767B (zh) | 一种基于局部图像扭曲的手机动漫人物创作方法 | |
CN103795925A (zh) | 一种可交互的主副画面实时渲染的拍照方法 | |
CN110033501B (zh) | 一种动画的实现方法及电子终端 | |
CN105894560A (zh) | 一种图像处理的方法、用户设备及系统 | |
CN101075277A (zh) | 一种游戏中路面的仿真处理方法及仿真处理系统 | |
Chen et al. | A virtual education assistance system in simulated river ecosystems with 3D visualization | |
Fang et al. | Application Research of Digital Technology in Inheritance and Development of Jiangxi Local Opera: Taking Gannan Tea Picking as an Example | |
Meysenburg | Introduction to Programming Using Processing | |
CN111882639B (zh) | 一种画面渲染方法、装置、设备和介质 | |
Milchev | SFML Essentials | |
Lin | Web-based Sprite Sheet Animator for Sharing Programmatically Usable Animation Metadata |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |