【基于平面剪纸图像向3D 图形转换的研究】 3d立体剪纸

【关键词】剪纸图像 三维图像 OpenGL

1 引言

剪纸,又称刻纸,窗花或剪画等。区别

在于创作,有的用剪刀,有的用刻刀,虽然使

用的工具不同,但创作出来的艺术作品基本相

同。事实上,剪镂、刀刻的痕迹有一定的差异,

且用的技法也有难易之分,但是这些作品都是

一种镂空艺术,其在视觉上给人以夸张、透空、

抽象的感觉,其载体可以是纸张、金银箔、木

片、竹片、树叶、树皮、布、皮、革等片状材

料。随着计算机的出现剪纸艺术开始在新的领

域不断发展,尤其是动漫、广告、影视等行业,

而三维动画的出现使剪纸图像得到了进一步的

发展。如果将获得的剪纸图像快速转换成三维

图形,并应用于动漫等各个行业中,可以为这

些行业提供丰富的素材,减少一定的设计和制

作时间、提高效率是非常有意义的。

2 三维剪纸图形的生成

2.1 图像预处理

对于现实中的手工剪纸艺术作品来说,

要想变为计算机可存储、识别、处理的数字图

像,首先要把图像采集存储到计算机中,本文

所研究的将平面剪纸图像转化为空间三维剪纸

图形,需要使用到原始的数字图像,这些图像

可以通过照相机、扫描仪等物理设备来获取,

使其成为的数字图像,为后续进一步处理。

由于在采集图像过程中会产生一些不可

避免的噪声,如果直接使用图像去获取我们所

文/孙全亮1 张晓朋2 胡世洋1

剪纸是中国历史悠久的民间

传统艺术之一,其主观意象性强,

造型、风格独特。随着动漫产业

不断发展,剪纸艺术为动漫等行

业提供了很好的素材, 以剪纸为

素材的动画作品,其实际应用和

视觉效果深受人们广泛欢迎。当

前动漫设计向三维发展,将现有

的剪纸图像自动生成三维空间剪

纸图形,具有重要的研究意义,

可以为今后三维动漫设计提供素

材,提高工作效率。

摘 要

需要的信息,那么会受到噪声的干扰,影响处

理结果,因此,接下来需要进一步去噪处理。

图像裁剪的一个重要步骤是获取边缘,

它是后续剪纸图像向空间剪纸图形转化过程的

重要环节,决定着空间剪纸图形的重绘的形状,

有利于后续的边界坐标的线性追踪,如图2 所

示是对图1 二值图像,进行边缘提取得到的单

像素图像边缘。

2.2 OpenGL求值器及空间曲面的裁剪

复杂几何形状的分割,可以拆分为独立简

单的基本图元( 如:点、线、多边形,多面体等),

那么不同的几何形状也都可以再分成基本图

元。为了使做出复杂且光滑的曲线、曲面或几

何体,往往需要使用大量的基本图元来近似拟

合,这种做法虽然可以较好的实现复杂物体的

构建,但常常需要大量的计算时间和存储空间,

影响处理速度,且不够精确,对硬件要求也相

当高。虽然OpengGL 的辅助库中已经集成了

一些三维空间几何体的绘制命令,但在实际应

用中是远远不够用的。在实际生活中,我们可

以发现许多光滑的曲线和曲面物体具有这样的

特征,可以利用直线或网格线来简单描述,通

过增加少量的控制点对其控制可以实现曲线或

曲面的绘制,在科学计算中常常用到各种各样

的样条和样条曲面,如B 样条、曲线和

曲面就属于这一类,这些都在OpengGL 的求

值器命令中完美的体现出来。使用OpenGL 求

值器可以轻松地绘制曲面的边框图以及带有阴

影和光照的曲面。

2.2.1 二维求值器

贝塞尔()曲面

二维求值器,该曲面的计算类似于一维

求职器的情形,不同的是,二维求值器要使用

两个参数,即u 和v。贝塞尔曲面是双参数矢

量函数,即, 曲面

生成采用控制点描述如式(1):

(1)

其中基函数Bi 与Bj 的多项式表达式完全

与一维相同。Pij 为m×n 个控制点,可以表示

为物体的颜色、法向量、顶点或纹理坐标。

2.2.2 GLU NURBS 接口

NURBS 曲线和NURBS 曲面在传统的绘

图图领域是不存在的,是为了使用计算机更好

的进行3D 建模而专门建立,即在3D 建模的

内部空间,用曲线和曲面来表现轮廓和外形。

OpenGL 的辅助库函数提供了NUEBS 接

口,它是建立在求值器基础上的一种高层函数

库。使用NURBS 绘制曲线和曲面的方法与使

用大量的基本图元来近拟合比较,不但简单、

效率高,而且也可以方便的处理光照模型和纹

●基金项目:本文系贺州学院2013 年度校级科研项目:“基于剪纸图像的剪纸设计研究”(编号:2013ZXZK14);贺州学院2013 年度项目:“基

于CDIO 的Photoshop 平面设计专业应用型人才培养模式研究”(编号:hzxyjg201342);贺州学院2014 年度科研项目( 编号:2014YBZK09) 的

研究成果。

图1:二值化的剪纸纹样图像

图2:提取边缘的剪纸纹样图像

96 • 电子技术与软件工程 Electronic Technology & Software Engineering

图像与多媒体技术 • Image & Multimedia Technology

理映射。

NURBS 编程的基本思想可简单描述如

下:

(1)对NURBS 曲面作光照处理,首先

要计算曲面的法向量,可调用函数自动生成,

也可自行计算。

(2)创建NURBS 对象的指针并初始化。

调用函数,theNurb=gluNewNurbsRenderer(),

创建NURBS 曲线曲面。

(3) NURBS 对象属性用户可以根据具

体需要进行相关的设置。

(4) 在glPushMatrix() 函数之后,调用

BeginCurve(),开始绘制曲线和曲面。

(5) 在glPushMatrix() 函数之后,调用

gluNurbsCurve(),生成和绘制NURBS 曲线和

曲面。

(6)在gluEndCurve() 或gluEndSurface(),

结束绘制曲线和曲面,调用glPopMatrix() 函

数结束所以的绘制。

2.2.3 OpenGL 空间曲面的裁剪

当对剪纸图像边缘进行空间曲面图形裁

剪时,根据图形的取舍决定裁剪的方向,可以

利用glBeginTrim()、gluPwlCurve(theNurb…)、

glEndTrim() 函数来实现:如图3 所示边缘的

裁剪。

对于NURBS 函数库中定义的裁剪命令,

为保证裁剪的正确性,首先要确定图像边缘曲

线必须是闭合回路,且应当考虑裁剪图像边缘

曲线的方向性。如图3 所示灰色部分为保留区,

白色部分为镂空区,曲线A为逆时针闭合回路,

是NURBS 曲面外围边缘曲线;曲线B,C 为

图像内部边缘裁剪曲线。对于一个单连通区域

且以逆时针方向裁剪时,裁剪曲面内部保留( 如

图3:D 闭合曲线回路);以顺时针方向对图

像边缘裁剪的曲线内部被删除( 如图3:B 曲

线闭合回路)。

NURBS 裁剪曲线有两种类型,第一种:

即分段线性曲线,由gluPwlCurve() 函数调用,

它是以绘制的点为定点, 相邻两点之间以直线

连接,由计算机完成;第二种:即NURBS曲线,

是由gluNurbsCurve() 函数调用绘制,且曲线

必须位于参数空间(u,v) 的单位正方形内部,

NURBS 裁剪曲线常用的类型为GLU_MAP1_

TRIM2,其次为GLU_MAP1_TRIM3,此时坐

标齐次化为。<