当前位置:首页 期刊杂志

基于浮雕图像的3D浮雕效果实现

时间:2024-07-28

林 静,王薇婕,关丹丹,景军锋

(西安工程大学 电子信息学院,陕西 西安 710048)

浮雕是在平面上雕刻出凹凸起伏形状的一种雕塑,它是介于平面绘画与三维浮雕之间的一种艺术表现形式,能很好地保持三维物体基于某个观测角度的外形轮廓和视觉效果,因此也越来越受到人们的喜爱。国内外对浮雕进行了大量的研究,在这些研究中,有的是从三维模型出发[1-2],其基本方法是对三维几何模型在某给定视觉方向的深度值进行压缩来获得浮雕。有的是从图像出发,主要是从图像的灰度与视觉的映射关系出发[3],从图像中提出灰度信息,并转化成为深度值,从而生成三维浮雕模型。而将图像表面分为高频与低频两个分量进行处理,且利用先验函数定义浮雕的高低起伏[4]来恢复3D浮雕效果也可取得很好的成效。

为了达到更好的艺术效果,考虑到浮雕的深度、视觉效果和突出主题等,一些研究学者从浮雕的细节出发对浮雕进行处理,取得了不错的效果。本文从二维浮雕图像出发,用一种不那么复杂的算法显示出3D浮雕效果,使图像更有立体感与观赏性。

1 相关工作

为了实现3D浮雕效果,本文将二维图像看是一个二维的网格平面,利用目标区域图像(去除背景)的颜色值作为物体的高度值进行三维网格化绘制,为了得到更好的视觉效果,将得到的图像进行光照处理,实验结果表明了这种方法在实现3D浮雕效果的有效性与快速性。算法流程可以分为图像分割、给目标区域增加一个高度值和设置光照3个部分。

1.1 图像分割与背景填充

图像分割是数字图像处理的重要技术之一,图像分割的目的是将图像中的目标区域与伪目标区域及其背景分开来,因为只有目标区域才能可以提供有用的信息。图像分割技术主要包括区域分割、阈值分割、差分运动分割及边缘检测4大类。然而,由于浮雕图像内部的目标区与背景区的纹理、灰度和色彩等特征相同(如图1所示),若采用一般的图像分割方法很难得到满意的效果,因此可在Photoshop中手动抽出目标图像[5]。

经过分割处理后,图像的背景色是白色,由于目标区域相对于白色背景而言像素值差异较大,但也不排除目标区域中一些较亮的点,为了确保最好效果,将背景色换为黑色。具体步骤为:(1)分别求出彩色图像的R、G、B 分量;(2)设置阈值求出新的 r、g、b 分量;(3)将新的 r、g、b分量所代表的 3个矩阵合并成 1个代表彩色图像的三维数组。经过多次实验,将阈值设置为200,即当原图像的 R、G、B分量值均大于 200时, 则令 r、g、b的值为0。图像处理后的效果如图2所示。

图1 输入图像

图2 处理后的目标图像

1.2 给目标区域增加高度值

只有给目标区域增加不同的高度值后,才更能反映出浮雕的凹凸起伏,其思想是:图像中物体的颜色是由该点经过反射得到的,所以颜色信息在一定程度上也反映了物体的形状信息,颜色浅的往往深度值较小,颜色深的地方往往相对深度值较大,这样就可以把物体上的颜色信息看成加到2D图像网格上的高度场。

1.2.1将图像进行矩阵运算

将图像看作是由一个个像素点组成的矩阵,充分利用MATLAB强大的矩阵运算能力进行以下处理:

for i=1:im_size(1)

for j=1:im_size(2)

Image1(i,j)=Image0(i,j)×1.0+K×j/n;

end

end

其中,im_size(1)与 im_size(2)分别是待处理图像的长和宽,Image0(i,j)是原图像中的一个采样点,K与 n是调节因子。经过运算后,Image1成为一个二维的矩阵。Image1(i,j)是 Image0(i,j)经过上述算法后的图像采样点,本文所说的给目标区域图像加高度值也是指在这些Image1(i,j)采样点上加高度值。

1.2.2平滑化处理

经过矩阵运算之后,对原图像数据进行一个平滑化处理。处理函数为:

其中,V是需要平滑的数据;W是平滑后的数据;filter是使用的卷积核,可为‘gaussian’或‘box’(默认值);size 是卷积核大小。本文所要处理的数据是图像Image0,即经过运算后的图像矩阵,filter为‘box’,size为 3。

1.2.3三维图形绘制

在进行三维图形绘制时,首先要将图形的定义区域分成若干网格,然后计算这些网格节点上的二元函数值,在本文中,这些网格节点上的二元函数值就是加在网格节点上的高度值。在MATLAB中,生成网格使用meshgrid函数,而在众多的三维绘制函数中使用meshz进行绘制,这是因为它在绘制三维网格图的同时在网格图周围绘制垂直水平面的参考平面。

1.3 设置光照

人们之所以能够看得见物体,是因为物体的表面对光进行了反射,反射光进入人眼。为了使物体的图形更具有真实感,需要给物体加上细腻的光照效果。而给物体加光照效果,最好的办法是对物体可见面上的每一点都添加亮度与颜色。但是这种方法工作量大,不易实现,因此,要充分利用物体的形状与连接信息来添加光照效果。

本文采用了在点[1,1,0]处设置一个点光源,使用Phong光照模型[6]来实现光照效果。Phong模型是一种最基础却很重要的光照模型,它分为镜面反射光、漫反射光和环境反射光3个累加阶段。

1.3.1镜面反射光

镜面反射光遵循反射定律。产生镜面反射的条件是入射光一般是平行光,并且物体表面比较平滑。事实上,没有绝对光滑的物体表面,因此反射光一般散布在反射光方向周围的局部范围内。PHONE B T模拟镜面反射光的空间分布为:

其中,IS表示观察者接收到的镜面反射光亮度;IP表示入射光亮度;β表示镜面反射光与视线方向的夹角;n表示物体的光滑度,一般取整数;KS表示镜面反射系数。改变n的值,可以调节反射光的亮度。

1.3.2漫反射光

不光滑的物体在受到光照向多个方向反射,这样的反射叫漫反射。漫反射的强度可以用朗伯定律来计算,朗伯定律叙述如下:

设物体表面在P点的法向量为N,从P点指向光源的向量为L,两者夹角为θ。点P处的漫反射光强度为:

其中,Id表示漫反射的亮度;IP表示入射光亮度;Kd表示是漫反射系数,0≤Kd≤1;θ为入射光与法线间的夹角,0≤θ≤π/2。

1.3.3环境反射光

环境反射光是由周围物体多次反射后照射在该物体的上的光。其亮度可以表示为:

其中,Ie表示物体的环境光反射亮度,Ia表示环境光的亮度,Ka表示物体表面的环境光反射系数。

1.3.4 Phong光照模型

为了真实地表现光照效果,从视点观察到的物体表面上每点的亮度应该为镜面反射光、漫反射光以及环境光的总和,即:

2 实验结果与讨论

根据上述流程进行实验,实验结果如图3和图4所示。其中图3(a)是图1经过算法恢复的3D浮雕效果模型不加光照处理的效果,图 3(b)、图 3(c)是经过加光照处理在不同视角下的效果。 图 4(b)、图 4(c)是图 4(a)经过算法恢复的3D浮雕效果加光照处理的不同视角效果图。从效果图可以看出,进行光照设置后的效果更具有立体感。

图3 实验结果1

图4 实验结果2

本文利用单幅浮雕图像实现3D浮雕效果,虽然思路不是很复杂,但是却能很好地达到目标。本文所实现的是一种伪3D效果,即浮雕的高度值并不是其真正的物理高度值,这也是接下来要完成的任务。

[1]SONG W, BELYAEV A, SEIDEL H P.Automatic generation of bas-reliefs from 3D shapes[C].Proceedings of IEEE InternationalConference on Shape Modeling and Applications, 2007: 211-214.

[2]赵鹏,边哲.曲面浅浮雕生成算法[J].计算机辅助设计与图形学学报,2010,22(7)1126-1131.

[3]叶新东,王章野,汤锋.一种基于图像的 3D浮雕效果绘制算法[J].计算机应用研究,2005,22(2):227-228.

[4]王松,李著文,于金辉.利用拓片恢复汉画像的浮雕效果[J].计算机辅助设计学与图形学学报,2011,23(5):784-789.

[5]朱晓丽,吴中福,李颖.基于 MATLAB实现石刻浮雕图像 “数字拓片”技术的研究 [J].计算机科学,2009,36(2):268-270.

[6]于万波.基于MATLAB的计算机图形与动画技术[M].北京:清华大学出版社,2007.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!